2016-05-12 52 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