我想知道是否有一種方法,我可以通過一些配置xml參數從我的C#數據服務發送NULL或DBNull.Value到存儲過程。有沒有一種方法可以通過XML將NULL值發送到SQL存儲過程?
在proc中,我想從xml中提取一些值作爲一點,但因爲UI允許第三個狀態,所以從xml進入的位值可以爲NULL,在這種情況下,我想忽略任何該字段的SQL更新。
XElement xml = new XElement("XML");
xml.Add(new XElement("SomeConfigValue", NULL));
看來,當我從C#向xml中拋出NULL時,它默認爲沒有值的節點。
<SomeConfigValue />
當我試圖抓住從XML值在SQL位值被解釋爲0。
select isnull(@Configuration.value('/Configuration[1]/SomeConfigValue [1]', 'bit'), NULL)
這是所有罰款和良好的。這說得通。我只是好奇,如果任何人都可以提出想法,我可以按照自己喜歡的方式進行工作。也許我不能依賴SQL位類型,但我現在正在重新考慮強類型。
我希望能夠抓住一個NULL,如果進來的值不是1或0。
set @SomeConfigValue = isnull(@Configuration.value('/Configuration[1]/SomeConfigValue [1]', 'bit'), NULL)
目標是忽略更新該值,如果它是NULL,或者不在這個特定的SQL位類型的情況下1或0。
update MyTable
set ConfigValue =
case
when @SomeConfigValue IS NULL then T.SomeConfigValue
else @SomeConfigValue
end from SomeTable T
如果有沒有一個標準的上這個怎麼做? – topwik 2009-07-07 16:40:09