次のように整数のリストをシリアル化しています。
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 コードのいずれかを変更できます。