在不知道sqlDbType的情况下将DBNull.Value与SqlParameter一起使用?

Ala*_*lan 5 .net c# sql sql-server

我正在使用a SqlParameter将空值传递给可以为空的各种列的表.问题是如果没有sqlDbType,SqlParameter看起来默认为nvarchar.如果实际的db类型是varbinary,则会出现问题.我得到一个例外说法

不允许从数据类型nvarchar到varbinary(max)的隐式转换.使用CONVERT函数运行此查询.

当我创建SqlParameter时,我所知道的只是参数的名称和对象.如果对象为null,SqlParameter显然无法推断出正确使用的类型,那么有没有办法将SqlParameter与null值一起使用,而不必在创建sql参数时知道sqlDbType?

基本上将DBNull传递给数据库而不指定类型,让数据库处理它?

Nul*_*ead 5

旧帖子,但可能会对其他人有所帮助。

Convert.DBNull
Run Code Online (Sandbox Code Playgroud)

像这样

command.Parameters.AddWithValue("@param", Convert.DBNull);
Run Code Online (Sandbox Code Playgroud)


Ton*_*ony 1

将 NULL 列的默认值设置为 NULL,然后不要在插入语句中传递任何 NULL 列。