将 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 数据

将 XML 数据上传到 SQL Server

将xml中的数据提取到SQL Server表中

使用单个过程将多个 xml 数据动态插入到 sql server 表中

将 c# 对象存储在 sql server 数据库中

如何将 android 应用程序数据持久保存到本地 sql server