【问题标题】:XML data not Complete when reading from SQL Server从 SQL Server 读取时 XML 数据不完整
【发布时间】:2017-05-30 09:23:08
【问题描述】:

我正在通过 C# 执行 sql 查询以获取 XML 数据,如下所示,但是在字符串 getxml_string 中,与 SQL 服务器上的数据相比,XML 数据不完整,我觉得我做错了什么getxml_string,但想不通:

string getxml = "some query"
DataTable getxml_table = SQLClass.GETSQL(getxml , conn);
var doc = new XmlDocument();
string getxml_string = getxml_table.Rows.OfType<DataRow>().Select(x => x[0].ToString()).First();
 doc.LoadXml(getxml_string);

在 GETSQL 中没有什么花哨的,如下所示:

public static DataTable GETSQL(string sqller, SqlConnection connection)
        {

           DataTable data_table = new DataTable();
           connection.Open();
           using (SqlCommand command = new SqlCommand(sqller, connection))
                {
                    SqlDataAdapter adapter = new SqlDataAdapter(command );


                        adapter.Fill(data_table);

                    connection.Close();
                        return data_table ;
            }

}

【问题讨论】:

  • 与您当前的问题无关,但 GETSQL 对于方法来说是一个非常糟糕的主意。您基本上一次强制 SQL 接口基于单个字符串,这使得使用参数变得不可能。这很糟糕,因为“使用参数”是你应该养成的习惯以避免SQL Injection
  • 好的,我发现了问题。我的问题当然是我的getxml_string,正如我从数据集可视化器中看到的那样。在这里,我正在执行 .FIRST(),所以它只是获取第一行。我如何得到所有的行。
  • 您可能无法获取所有数据。增加超时。 command.CommandTimeout = 300; //以秒为单位,默认为 30
  • @jdweng,我可以在数据表 (getxml_table) 中看到它已获取所有数据。但是现在问题是读取数据表。我在getxml_string 中使用.first。所以可能是因为这个。我无法读取数据表。
  • 需要查看部分 xml 以确定修复。解析xml的方法很多,在这种情况下不知道合适的方法。

标签: c# sql sql-server xml


【解决方案1】:

这对我有用:

List<datarow> list =  getxml_table.AsEnumberable().ToList();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2016-08-18
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多