-1
DataTable[] dt = new DataTable[2];

for(i = 0; i <= 1; i++)
{
  dt[i].Columns.Add("id");
  dt[i].Columns.Add("name");
}

当我运行它时,我得到:

你调用的对象是空的。

可以像这样声明和使用 DataTable 数组吗?

4

3 回答 3

1

是的,您可以这样做,您会收到该错误,因为dt[i]它不是 DataTable 实例:

你可以这样做:

dt[i] = new DataTable();

完整代码:

DataTable[] dt = new DataTable[2];

for(i = 0; i <= 1; i++)
{
   dt[i] = new DataTable()
   dt[i].Columns.Add("id");
   dt[i].Columns.Add("name");
}
于 2013-03-13T22:35:54.153 回答
0
DataTable[] dt = new DataTable[2];

for(i = 0; i <= 1; i++)
{
  dt[i].Columns.Add("id");
  dt[i].Columns.Add("name");
}

我认为在代码中您声明了一个具有 2 个位置(空)的数组,但实际上并未填充它们。

你需要:

DataTable[] dt = new DataTable[2];

for(i = 0; i <= 1; i++)
{
  dt[i] = new DataTable();
  dt[i].Columns.Add("id");
  dt[i].Columns.Add("name");
}

为了回答您的问题,是的,您应该能够拥有一系列DataTable.

于 2013-03-13T22:36:24.163 回答
0

您必须先初始化DataTable[]数组元素:

dt[0] = new DataTable();
dt[1] = new DataTable();

或在循环内

for(i = 0; i <= 1; i++)
{
  dt[i] = new DataTable();
  dt[i].Columns.Add("id");
  dt[i].Columns.Add("name");
}
于 2013-03-13T22:36:31.450 回答