将 XML 数据保存到 SQL Server 表
Posted
技术标签:
【中文标题】将 XML 数据保存到 SQL Server 表【英文标题】:Save XML data to SQL Server table 【发布时间】:2013-08-28 16:12:33 【问题描述】:我有这个 xml 文件,我想将值 NUMBER
(例如)保存到 SQL Server 表中。
<ORDER>
<ORDER_HEADER>
<NUMBER>10945</NUMBER>
<TIME>7.8.2013 12:45:20</TIME>
<NOTE>this is Note</NOTE>
</ORDER_HEADER>
</ORDER>
这是我的代码:
XDocument doc = XDocument.Load("C:\\Users\\L\\Desktop\\data.xml");
var NUMBER = doc.Descendants("NUMBER");
var TIME = doc.Descendants("TIME");
var NOTE = doc.Descendants("NOTE");
foreach (var cislo in NUMBER)
SqlConnection conn = new SqlConnection("Data Source=***");
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
cmd.CommandText = "Update CISLO SET cislo = @cislo1;";
cmd.Parameters.AddWithValue("@cislo1", doc);
cmd.ExecuteNonQuery();
MessageBox.Show("OK");
我收到此错误:
没有从对象类型 System.Xml.Linq.XDocument 到已知托管提供程序本机类型的映射。
在行:
cmd.ExecuteNonQuery();
【问题讨论】:
【参考方案1】:您正在将“doc”(即您的 XDocument)传递给参数。尝试改变
cmd.Parameters.AddWithValue("@cislo1", doc);
到
cmd.Parameters.AddWithValue("@cislo1", cislo);
【讨论】:
应该是cislo.Value
是的! cmd.Parameters.AddWithValue("@cislo1", cislo.Value);
好电话,@MarcinJuraszek以上是关于将 XML 数据保存到 SQL Server 表的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中使用 SQL Server 2014 保存和检索 XML 数据