-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 に答える