我正在序列化一个整数列表,如下所示:
List<int> Ids=new List<int>();
Ids.Add(3);
Ids.Add(98);
XmlSerializer xs = new XmlSerializer(typeof(List<int>));
MemoryStream ms = new MemoryStream();
xs.Serialize(ms,Ids);
string resultXML = UTF8Encoding.UTF8.GetString(ms.ToArray());
并传递resultXML
给存储过程;
xml ( resultXML
) 的形式为:
<?xml version="1.0"?>
<ArrayOfInt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<int>3</int>
</ArrayOfInt>
我试图在我的存储过程中解析它,如下所示:
insert into Table(did,pid)
(SELECT 1, id
FROM OPENXML (@idoc, '/ArrayOfInt/int',)
WITH (id int
))
但我没有得到价值观;该id
列始终是null
:
id
----------- -----------
1 NULL
我怎样才能解决这个问题?我可以更改任何 SP/TSQL、xml 和 C#/.NET 代码。