Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据表从一个数据集克隆到另一个数据集的数据表_C#_Datatable_Merge_Dataset - Fatal编程技术网

C# 将数据表从一个数据集克隆到另一个数据集的数据表

C# 将数据表从一个数据集克隆到另一个数据集的数据表,c#,datatable,merge,dataset,C#,Datatable,Merge,Dataset,我试图从一个数据集将Datable克隆到另一个数据集的datatable,但它不起作用 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]' cann

我试图从一个数据集将Datable克隆到另一个数据集的datatable,但它不起作用

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

cust也是一个数据集。有人能帮我解决这个问题吗

您遇到的错误与此类似:

属性或索引器“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]包装在parantise
()
中,以便编译器将其视为数据表

您应该分配一个
DataTable
变量以保持可读性:

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

您得到的错误与此类似:

属性或索引器“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]包装在parantise
()
中,以便编译器将其视为数据表

您应该分配一个
DataTable
变量以保持可读性:

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

“不工作”是什么意思?数据集,但它不工作。如何?@AjayPandya It给出错误属性或索引器“System.Data.DataTableCollection.this[int]”无法分配给-它已读取only@Serv请看上面的评论,我忘了提交答案。只是开着账单。基本上,您忘记了在
ds.Tables[0]
周围添加
,您必须使用
.add()
。详见我的答案。你说的“不工作”是什么意思?数据集,但它不工作。如何?@AjayPandya It给出错误属性或索引器“System.Data.DataTableCollection.this[int]”无法分配给-它已读取only@Serv请看上面的评论,我忘了提交答案。只是开着账单。基本上,您忘记了在
ds.Tables[0]
周围添加
,您必须使用
.add()
。详见我的答案。你是个救生员。非常感谢。你是个救生员。谢谢。