当我将空值(或者更好的说法是 DbNull 值)传递给 DbParameter 对象时,我遇到了 SQL 更新语句的问题。当我将 DbNull 值传递给 Value 属性时,DbParameter 对象的 DbType 仍然是 STRING。
如果我尝试写入二进制字段( varbinary(max) ),我得到一个异常,即varchar和varbinary之间的转换是不可能的。所以在那种情况下,我必须自己设置 DbType。我现在的问题是,如何从 .Net 类型中获取 DbType。我想成为这个通用的,所以我可以将我的方法与其他数据库一起使用。我在 MSDN 文档中找不到任何有用的东西。如果有人能给我一些如何解决这个问题的提示,我将不胜感激。或者,也许我走错了路。我暂时不确定。