我正在使用sql Server 2008存储过程创建一个新的记录
这个语法:
这个语法:
cmd.Parameters.Add("@photo",DBNull.Value) cmd.ExecuteNonQuery()
但结果是:
Operand type clash: nvarchar is incompatible with image
照片不是唯一的参数,而是唯一的图像,我没有通过
一个nvarchar但是一个空值,我是否缺少一些东西?
如果您传递DBNull.Value作为值,ADO.NET无法确定参数应该是什么类型.如果指定一个字符串或整数值,则可以从提供的值派生sql参数的类型,但是DBNull.Value将被转换成什么类型?
原文链接:https://www.f2er.com/vb/255166.html当传入NULL值时,您需要自己指定sqlDbType:
Dim photoParam As New sqlParameter("@photo",sqlDbType.Image) photoParam.Value = DBNull.Value cmd.Parameters.Add(photoParam) cmd.ExecuteNonQuery()
这应该工作,我希望!
更新:同样的事情在C#将是:
sqlParameter photoParam = new sqlParameter("@photo",sqlDbType.Image); photoParam.Value = DBNull.Value; cmd.Parameters.Add(photoParam); cmd.ExecuteNonQuery();
有一个伟大的,免费的,非常有用的VB.NET-to-C# converter out there – 使用它!