2016-05-12 48 views
0

我想克隆從一個數據集到其他數據集的數據表的Datable,但它不起作用。從一個數據集到其他數據集的數據表克隆數據表

Dataset ds = new Dataset(); 

ds.Tables.Add("key"); 
ds.Table["key"] = cust.Tables[0].Clone(); // This line is not working 

上面的代碼,給出以下錯誤

Property or indexer 'System.Data.DataTableCollection.this[int]' cannot be assigned to — it's read only 

卡斯特也是一個數據集。有人可以幫助我解決這個

+0

你說的「不工作」是什麼意思? – Marco

+0

數據集,但它不起作用。怎麼樣? –

+0

@AjayPandya它給錯誤屬性或索引'System.Data.DataTableCollection.this [int]'不能被分配給 - 它是隻讀的 – Richa

回答

3

你所得到的錯誤是與此類似:

屬性或索引「System.Data.DataTableCollection.this [INT]」不能 被分配到 - 它是隻讀

你這樣做是正確的一次,然後你做錯了行後。 錯誤告訴你,cust.Tables[0]是隻讀的。你可以不指定任何值,所以你必須使用Add()方法:

DataSet cust = new DataSet(); // create source DataSet 
cust.Tables.Add("sourceTable"); //add table to source 

DataSet ds = new DataSet(); // create target DataSet 
ds.Tables.Add((cust.Tables[0]).Clone()); //clone source table 
(ds.Tables[0]).TableName = "keys"; // assign name 

你需要用ds.Tables[indexer]在paranthesis ()所以編譯器把它當作一個數據表。

應先分配DataTable變量,以保持可讀性:

var sourceTable = cust.Tables[0]; 
/* ... */ 
ds.Tables.Add(sourceTable.Clone()); 
+0

你是一個拯救生命的人。非常感謝。 – Richa