如何将xml文件保存到xml列

本文关键字:xml 保存 文件 | 更新日期: 2023-09-27 18:13:39

我有一个xml文件,我想把它的内容保存到数据库中再次读取。

我使用XmlDocument加载xml文件,并使用InnerXml保存此xml。

这是我的代码

cmd.CommandText = @"INSERT INTO pages(BPMNID,XML) VALUES (@BPMNID,@XML)";
cmd.Parameters.AddWithValue("@BPMNID",2);
cmd.Parameters.AddWithValue("@XML", XDoc.InnerXml);
cmd.Connection = conn;
conn.Open();
try
{
    cmd.ExecuteNonQuery();
}

当运行前面的代码时,我得到一个异常

XML解析:无法切换编码

提示:Xml列是xml

如何将xml文件保存到xml列

尝试使用如下代码:

public void SaveXml(int id, string xmlFileName)
{
    // read your XML
    string xmlContent = File.ReadAllText(xmlFileName);
    // set up query
    string insertQuery = "INSERT INTO pages(BPMNID, XML) VALUES (@BPMNID, @XML)";
    using (SqlConnection conn = new SqlConnection(-your-connection-string-here-))
    using (SqlCommand cmd = new SqlCommand(insertQuery, conn))
    {
        // define parameters
        cmd.Parameters.Add("@BPMNID", SqlDbType.Int).Value = id;
        cmd.Parameters.Add("@XML", SqlDbType.VarChar, -1).Value = xmlContent;
        // open connection, execute query, close connection
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
    }
}