2016-05-12 5 views
0

Ich versuche, Datable von einem Dataset zu Datentabelle von anderen Dataset zu klonen, aber es funktioniert nicht.Clone DataTable von einem Dataset zu DataTable anderen DataSet

Dataset ds = new Dataset(); 

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

Above Code unten gibt Fehler

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

cust ist auch ein Dataset. Kann mir jemand helfen, lösen diese

+0

Was meinst du mit „funktioniert nicht“? – Marco

+0

Dataset, aber es funktioniert nicht. Wie? –

+0

@AjayPandya Es gibt Fehler Eigenschaft oder Indexer 'System.Data.DataTableCollection.this [int]' kann nicht zugeordnet werden - es ist nur lesen – Richa

Antwort

3

Der Fehler, den Sie bekommen dies ist ähnlich wie:

oder der Indexer ‚System.Data.DataTableCollection.this [int]‘ kann nicht zugeordnet werden - es ist nur lesen

Sie machen es richtig einmal, und dann machst du es falsch in der Zeile danach. Der Fehler besagt, dass cust.Tables[0] nur gelesen werden kann. Sie können keine Werte zuweisen, so dass Sie die Add() Methode verwenden:

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 

Sie müssen ds.Tables[indexer] in geklam- mert wickeln () so dass der Compiler sie als Datentabelle behandelt.

Sie sollten eine DataTable Variablen zuweisen, die Lesbarkeit zu halten:

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

Sie sind ein Lebensretter. Danke vielmals. – Richa