Hej! Du tänker lite fel här, du kombinerar två olika arbetsmetoder. Antingen gör man ändringarna direkt i databasen med t ex ExecuteNonQuery, sedan gör man en läsning för att uppdatera datasetet ELLER så gör man ändringarna i datasetet och låter dataadaptern föra över ändringarna till databasen. Nu har du ett slags mellanting, där du först gör ändringarna i databasen (med SQL) och sedan försöker applicera samma SQL på datasetet. Det fungerar inte eftersom du inte kan köra UPDATE/DELETE/INSERT-satser på datasetet.Uppdatera ett DataSet med dataadapter
Jag har ett dataset som jag laddat vid applikationsstart med en DataAdapter. Detta DataSet vill jag senare kunna editera (precis som gamla ADODB.recordset). Jag skickar mitt dataset ref till en funktion som ser ut så här:
public bool Uppdatera(ref DataSet ds, string sPnr, DateTime dtTidPunkt, int Age)
{
//Skall uppdatera patienten till död.
string sAvliden = dtTidPunkt.ToShortDateString();
string sSelect = "PersNr = '" + sPnr + "'";
string sSql = "UPDATE info SET p = '1', ";
sSql = sSql + "datum = '" + dtTidPunkt+ "', ";
sSql = sSql + "alder = '" + Age + "' WHERE Persnr = '" + sPnr +"'";
try
{
SqlDataAdapter dp = new SqlDataAdapter(sSql,m_Connection);
//Skickar kommandot till databasen...
int nRowsAffected = dp.SelectCommand.ExecuteNonQuery();
dp.UpdateCommand = new SqlCommand(sSql, m_Connection);
int nRows = dp.Update(ds);
return true;
}
Detta fungerar till databasen, där sker uppdateringen som den skall. Men varför uppdateras inte mitt DataSet, det som jag skickar ref till funktionen. Vad jag förstår skall man använda DataAdapter classens update metod
Tacksam för svar
vänliga Hälsningar
AndersSv: Uppdatera ett DataSet med dataadapter
Sitter på jobbet nu och hinner inte skriva kodexempel, men jag kollar på inläggets status ikväll och återkommer vid behov med mer kött på benen.