2013-03-13 90 views
-1
DataTable[] dt = new DataTable[2]; 

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

當我運行此我得到:你可以將一個DataTable聲明爲一個數組嗎?

對象引用不設置到對象的實例。

DataTable數組是否可以這樣聲明和使用?

+0

另一種方式來創建和初始化使用LINQ這陣內).Select(i => new DataTable())。ToArray();' – 2013-03-13 22:39:55

回答

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陣列。

+0

你們都很棒。謝謝 – 2013-03-13 23:02:25

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"); 
} 
0

你必須首先初始化DataTable[]數組元素:`Enumerable.Range(1,2:

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"); 
} 
相關問題