我有以下的C#類SQL服務器讀取XML值作爲空字符串
public class Data
{
public string A {get;set;}
public string B {get;set;}
public string C {get;set;}
}
我在我的代碼創建了這樣一個實例:
var d = new Data { A = "abc", B = string.Empty, C = null};
我需要將其轉換爲XML和通它在SQL Server的一個存儲過程2008
我做到這一點使用:
var xml = new XElement("Data",
new XElement("A", d.A),
new XElement("B", d.B),
new XElement("C", d.C));
在存儲過程中生成的XML:
<Data>
<A>abc</A>
<B></B>
<C />
</Data>
所以,有一個空字符串的空值之間的差異。
然後在SQL中,我使用下面的語法來讀取XML:
INSERT INTO #myTable
SELECT
nref.value('(A/text())[1]', 'uniqueidentifier') [A],
nref.value('(B/text())[1]', 'uniqueidentifier') [B],
nref.value('(C/text())[1]', 'uniqueidentifier') [C],
FROM @DataXml.nodes('/Data') AS R(nref);
但是,這爲我提供B和C都爲NULL,其中B應該是空字符串。
我該如何調整以確保空值保留爲空值,空字符串保留爲空字符串?
由於
如果你說:「RAD的XML」你的意思是「讀XML」? –
爲什麼你需要將它轉換爲XML傳遞給存儲過程,只是將它從XML中分離出來,返回到離散的字段中?只需將離散值傳遞到存儲過程即可。 –
最大,對於「rad」,讀取「讀取」。這條消息中的XML非常簡單,我的實際XML更加複雜,並且允許我將一批對象傳遞給我的sproc,然後可以遍歷它們。 – DrGriff