【问题标题】:Syntax Accessing Invalid DataTable Index访问无效数据表索引的语法
【发布时间】:2017-02-11 01:50:53
【问题描述】:

我的语法中有 4 个数据表。我想忽略 ds.Tables[0]; 并迭代 1、2 和 3。下面的语法会引发错误

找不到表 4

我认为ds.Tables.Count; 会显示只有 3 个数据表(因为它是基于 0 的索引)。但相反,它继续尝试处理并引发上述错误。

我是否误解了这个过程的工作原理?我应该怎么做才能只处理数据表 1、2、3?

(我的语法最初设置为int i = 1;,因此代码开始处理ds.Tables[1];

for (int i= 1; i < ds.Tables.Count; i++)
{

}

【问题讨论】:

  • 我猜错误出在您没有显示的代码中,因为如果您有 3 个表,则 Test.Count 将为 3。因此,您的 for 循环将执行 1 和 2。

标签: c# c#-4.0 datatable


【解决方案1】:

我认为您需要验证您实际上是在将四个 DataTable 添加到您的 DataSet 中。我在下面创建了测试代码,它按预期工作。

var ds = new DataSet();
ds.Tables.Add(new DataTable()); // 0
ds.Tables.Add(new DataTable()); // 1
ds.Tables.Add(new DataTable()); // 2
ds.Tables.Add(new DataTable()); // 3
for (int i = 1; i < ds.Tables.Count; i++)
{
    var currentTable = ds.Tables[i];
    if (currentTable == null)
    {
        Response.Write("Table is null!");
    }
}

我的代码从表 2(索引 1)、表 3(索引 2)和表 4(索引 3)开始遍历循环。我会仔细检查您的 DataSet 是否包含 4 个 DataTables。

我希望这会有所帮助。

【讨论】:

  • 我已经确认我有 4 个数据表。我想忽略 index[0],只处理 1、2、3。让我编辑添加更多代码。
猜你喜欢
  • 2020-02-11
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-18
相关资源
最近更新 更多