2017-07-14 74 views
1

我们正在使用的SqlDataRecord(为清晰起见只是一个场)是这样的:SqlDataRecord.SetString - 空字符串错误

SqlMetaData[] metaData = new SqlMetaData[1]; 
metaData[0] = new SqlMetaData("ItemName", SqlDbType.NVarChar, 200); 

SqlDataRecord lineItemRecord = new SqlDataRecord(metaData); 
lineItemRecord.SetString(0, itemName); 

的问题是,它似乎像在SetStringitemName字符串不能为空。如果传递了null,那么它会抛出异常,说它不是一个有效的值。

如何将null传递给存储过程用户定义类型的字段类型定义为nvarchar NULL

+0

你尝试的DBNull? –

+0

SetString不接受DBNull。 only(int,string)。 –

回答

2

可能是这样的:

if(itemName == null) 
{ 
    lineItemRecord.SetDBNull(0); 
} 
else 
{ 
    lineItemRecord.SetString(0, itemName); 
} 
+0

嗯......不知道为什么我还没有收到有关此答案的通知。将很快进行测试,并返回反馈。谢谢! –

+0

是的,这个工程!谢谢! –