相关疑难解决方法(0)

.NET:如何将XML文档插入SQL Server

我想将任意XML插入SQL Server.XML包含在一个XmlDocument对象中.

我要插入的列要么nvarchar,ntextxml列(如果它使你的生活更轻松,那么你可以选择哪个类型,它真的是一个xml列.)

原型

void SaveXmlToDatabase(DbConnection connection,
      XmlDocument xmlToSave,
      String tableName, String columnName);
{

}
Run Code Online (Sandbox Code Playgroud)

我问的原因是因为我试图找到正确的方法来转换XmlDocument成数据库可以采取的东西 - 确保编码正确:

  • 我必须确保在插入期间使用的编码与数据库采用的匹配
  • 我必须同步<?xml version="1.0" encoding="windows-1252"?>元素

我知道ntext,nvarchar或者xml存储UTF-16在SQL Server内部.所以我必须确保将数据作为UTF-16提供给SQL Server.这对于String.NET中的s 来说不是问题,因为它们 unicode UTF-16.

第二个问题,即同步编码属性,是一个难以破解的难题.我必须弄清楚如何通过XmlDocument对象找到声明元素:

<?xml version="1.0" encoding="windows-1252"?>   (or whatever the encoding may be)
Run Code Online (Sandbox Code Playgroud)

并将其调整为UTF-16

<?xml version="1.0" encoding="UTF-16"?>
Run Code Online (Sandbox Code Playgroud)

我天真的尝试(失败)

忽略XML声明中的编码,并弄清楚如何将任何内容保存到SQL Server中:

void SaveXmlToDatabase(DbConnection connection,
      XmlDocument xmlToSave,
      String tableName, String …
Run Code Online (Sandbox Code Playgroud)

xml sql-server ado.net xml-serialization sql-server-2008

10
推荐指数
1
解决办法
3万
查看次数