【问题标题】:Is there a hard limit as to how many columns can be returned in C# SqlDataAdapter Fill?在 C# SqlDataAdapter Fill 中可以返回多少列是否有硬性限制?
【发布时间】:2014-01-07 17:16:48
【问题描述】:

我目前正在处理一个需要运行一些 SQL 以获取一些数据的遗留项目。 他们使用 DataTables、DataSets 等来处理数据。

被执行的查询只返回一行,但它包含超过 700 列。

不幸的是,当执行代码填充数据集时,如果查询包含超过 655 列,则不会返回任何内容。

有没有办法绕过这个限制,所以如果查询返回 656+ 列数据将被返回,还是有其他解决方法?

谢谢!

编辑:

追逐红鲱鱼。数据就在那里,如果数据中有 656+ 列,我就无法在调试器中将其作为表格查看。查看器不能处理超过 655 个。

【问题讨论】:

    标签: c# dataset sqldataadapter


    【解决方案1】:

    数据在那里,如果数据中有超过 656 列,我无法在调试器中将其作为表格查看。查看器不能处理超过 655 个。

    【讨论】:

      【解决方案2】:

      不确定是否能解决问题,但尝试使用重载的Fill 方法

      DbDataAdapter.Fill(Int32, Int32, DataTable[]).

      根据 MSDN 文档:

      在 DataTable 中添加或刷新行以匹配数据中的行 源从指定的记录开始并检索到 指定的最大记录数

      查看更多http://msdn.microsoft.com/en-us/library/0z5wy74x%28v=vs.110%29.aspx

      【讨论】:

      • 这似乎只处理记录。这里只有 1 条记录需要处理。这个问题与数据集中的列数有关。因此,例如,如果“select * from myTable”其中 * 包含 655 个或更少的列,适配器会填充并且我会取回数据。超过 655 的任何内容都不会返回。虽然实际上如果我直接进入调试器中的列并尝试查看它的数据,这会让人更加沮丧。
      • @univegar304,老实说,我从未遇到过表有 700 列的问题(我宁愿将该表分解为多个链接表),我也不知道对列数有任何此类限制@ 987654324@ 方法可以填充。我提出的是另一种选择。顺便说一句,您在哪里填充该数据(我的意思是在网格/列表中......)。
      • 不幸的是,这是一个遗留应用程序,所以我暂时只能使用现有的应用程序。我实际上并没有直接显示数据。它只是收集它用来构建页面的记录。此外,有问题的代码是应用程序框架的主要部分,因此这可能会无意中影响其他事情。我只是认为最初的建筑师在设计这个东西时并没有意识到这个明显的限制。所以我唯一的选择是找到一种解决方法,或者告诉他们它无法修复的坏消息。
      • @univegar304,只需在我的答案中使用替代方法,看看它是否有效。至少你手头有一个解决方法。
      • 我得到了同样的结果。表中没有填充数据。我的查询中有超过 655 列的任何内容,我什么也得不到。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多