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

标签 c# .net sql sql-server

我正在使用 SqlParameter 将 null 值传递到表中的各种可为 null 的列。问题是如果不存在 sqlDbType,SqlParameter 看起来默认为 nvarchar。如果实际的数据库类型是 varbinary,这就会出现问题;我得到一个异常(exception)说

Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query.

当我创建 SqlParameter 时,我只知道参数的名称和对象。如果对象为 null,SqlParameter 显然无法推断出要使用的正确类型,那么有没有办法在创建 sql 参数时不必知道 sqlDbType 就可以使用具有 null 值的 SqlParameter?

本质上就是把DBNull传给数据库,不指定类型,让数据库处理?

最佳答案

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

Convert.DBNull

像这样

command.Parameters.AddWithValue("@param", Convert.DBNull);

关于c# - 在不知道 sqlDbType 的情况下将 DBNull.Value 与 SqlParameter 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4222819/

相关文章:

c# - uwp 动态创建 xaml 或新页面

c# - 在 C# 中执行 sql 更新命令后没有任何反应。我的错误在哪里?

c# - Visual Studio 2005 中的 Crystal 报表(C# .NET Windows 应用程序)

.net - 水平的FileHelpers和CSV : what to do when a record can expand unbounded,

c# - Marshall 结构数组

php - 如何以自增字段为主键提高查询性能

c# - ObservableCollection.CollectionChanged 未触发

.net - 动态业务规则的架构

sql - Sencha Mysql 查询

SQL查询按月比较产品销量