aleborgMedlem sedan jan. 20013 341 inlägg Jag har dataSet1, i detta har jag dataTable1 med en del information. Om jag nu skulle göra följande:
dataTable1 = dataTable2; //dataTable2 är här en kopia av dataTable1 fast med några fält uppdaterade
och sen skickar iväg dataSet1 till nån funktion som ska ta hand om datan så finns inte dom nya ändringarna, inte heller nya rader som jag lagt till i dataTable1 efter ovanstående kod.
Varför beter sig .Net så här, fruktansvärt irriterande och frustrerande.
Den enda lösningen jag har på "buggen" i dagsläget är:
DataTable dataTable1Copy = dataTable2;
datatTable1.Rows.Clear();
foreach(DataRow dr in dataTable1Copy.Rows)
datatTable1.ImportRow(dr);
NöffMedlem sedan nov. 2003569 inlägg
och sen skickar iväg dataSet1 till nån funktion
Vad är det för funktion?. Man ska använda adapters när man ska föra över en ändring i ett datatable till en databas.
dataTable1 = dataTable2; //dataTable2 är här en kopia av dataTable1 fast med några fält uppdaterade
Det där går inte, förmodligen därför du får felet, Gör såhär istället:
DataTable copyDataTable;
copyDataTable = myDataTable.Copy();
Och varför gör du inte förändringarna i datatable1 istället om du ändå ska använda datatable1 i slutändan?.
aleborgMedlem sedan jan. 20013 341 inlägg Missade Copy() i min ovanstående kod bara.
Vad det är för funktion spelar egentligen ingen roll men det är en Webservice som tar hand om datasetet och lägger in det i en databas, uppdaterar datasetet med ID och skickar tillbaka det via webservicen.
dataTable1 = reg.SetItems(dataSet1).Tables[0];
Faktum är att om man gör som ovanstående så kommer dataTable1 innehålla den nya informationen och dataSet1.Tables[0] (som borde vara dataTable1) innehåller den gamla infon.
Nu tycker ni så klart att jag ska använda dataTable1 istället men det går tyvärr inte p.g.a flera orsaker, i så fall hade jag gjort det för länge sen.