2015-01-16 78 views
0

我有困難初始化DataTable與對象初始化指定ColumnsPrimaryKeyDataTable對象初始化與主鍵

private DataTable _products = new DataTable 
    { 
     Columns = { { "Product", typeof(string) }, { "Lot", typeof(string) }, { "Qty", typeof(int) } }, 
     PrimaryKey = Columns[0] //Columns doens't exist in the current context 
    }; 

有沒有一種方法,使工作?

回答

1

不,你不能,如果你想使用它的對象這也是在它初始化使用object initializer語法。但是這也沒有多大意義。

使用構造,因爲這是在合適的地方:

private DataTable _products; 

public void ClassName() 
{ 
    _products = new DataTable 
    { 
     Columns = { { "Product", typeof(string) }, { "Lot", typeof(string) }, { "Qty", typeof(int) } } 
    }; 
    _products.PrimaryKey = new[] { _products.Columns[0] }; 
} 
2

你應該這樣寫,

DataTable _products = new DataTable 
     { 
      Columns = { { "Product", typeof(string) }, { "Lot", typeof(string) }, { "Qty", typeof(int) } }, 
      //PrimaryKey = Columns[0] //Columns doens't exist in the current context because, datatable is still initializing. 
     }; 
     _products.PrimaryKey = new DataColumn[] {_products.Columns[0]}; //Columns exists here. 
+0

這是一個不場的局部變量 –