你可以将DataTable声明为数组吗?

时间:2013-03-13 22:34:10

标签: c# arrays datatable

DataTable[] dt = new DataTable[2];

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

当我跑步时,我得到:

对象引用未设置为对象的实例。

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

3 个答案:

答案 0 :(得分: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");
}

答案 1 :(得分: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数组。

答案 2 :(得分: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");
}