webForumDet fria alternativet

irriterande dataset och datatable

.NET

2 svar · 214 visningar · startad av aleborg

Medlem sedan jan. 20013 341 inlägg
Frågan#1

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);
Medlem sedan nov. 2003569 inlägg
#2

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?.

Medlem sedan jan. 20013 341 inlägg
#3

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.

280 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
142 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
142 ms — ändringar (db)