gpt4 book ai didi

c# - 无法序列化 DataTable。未设置数据表名称

转载 作者:太空狗 更新时间:2023-10-29 20:51:17 26 4
gpt4 key购买 nike

我需要将所有数据表导出到单独的 XML 文件,如果有一个巨大的表,我无法一次导出所有行,因为 System.OutOfMemoryException。所以我尝试导出 N 行。但是,如果我在查询中使用分页语法,WriteXml 会抛出异常。

我已经在 LINQPad 中测试了这两个查询,它们没问题。

System.InvalidOperationException: Cannot serialize the DataTable. DataTable name is not set.

  // The first query causes exception
string oraQueryGetTableData = "SELECT * FROM (SELECT t0.* FROM MY_TABLE t0) WHERE ROWNUM <= 100";

// The second query runs without any error
//oraQueryGetTableData = "SELECT * FROM MY_TABLE";

OracleCommand oraCommandGetTableData = new OracleCommand(oraQueryGetTableData, oraConnection);

OracleDataReader oraReaderTableData = oraCommandGetTableData.ExecuteReader();

DataTable dataTable = new DataTable();
dataTable.Load(oraReaderTableData);

// Exception might occur here
dataTable.WriteXml(writer, true);

这里有什么问题或我该如何解决?

最佳答案

如异常所述 - 该表没有设置其 TableName 属性。所以你只需要设置它。

DataTable dataTable = new DataTable { TableName = "MyTableName"};
dataTable.Load(oraReaderTableData);
....

关于c# - 无法序列化 DataTable。未设置数据表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35314515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com