webForumDet fria alternativet

Uppdatera Insert eller Delete

.NETur .NET

3 svar · 197 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Jag försöker att vara smart i min applikation. Här finns bl a tre knappar för uppdatera ny och delite.
Jag har gjort tre variabler (bool) som när man klicka på resp knapp får sitt värde satt till true.
Sedan har jag en gemensam class för att uppdatera databasen:

if(ny==true)
{
}
if(uppdatera==true)
{
}
if(tabort==true)
{
}

Innuti klammrarna så har jag olika SQL-strängar för resp och

OleDbCommand dc = new OleDbCommand(SQL,con);

(jag fick fel om jag inte har det i varje if-sats).
Därefter kör jag själva uppdateringen:

try
{
con.Open();				
da.Update(ds,"frånKund");				
con.Close();
}
catch(Exception fel)
{
MessageBox.Show(fel.Message,"Databasfel");
}

Vad jag kan läsa fram i min bok så borde ju detta fungera, men jag får ett fel, där den säger:

Uppdates requires a Valid UppdateCommand when passed DataRow Collection with modifieds Rows

Jag är inte säker på att jag förstår felmedellandet.
Om det är till hjälp, så är koden bakom knappen uppdatera så här:

int kund = listBoxTotal.SelectedIndex;
int a = 0;
foreach(string värde in AllaVärden)
{

ds.Tables["frånKund"].Rows[0][a] = värde;
a++;
}
UppdateraDatabasen();
FyllPåTotalt();
			
listBoxTotal.SelectedIndex = kund;

Något förslag?

Medlem sedan juni 20022 599 inlägg
#2

Svårt att svara när man bara ser delar av koden, men en DataAdapter har properties som styr hur inserts, updatess och deletes ser ut och dessa måste tilldelas i förväg:

da.UpdateCommand=new OleDbCommand(SQLUpdate,con); 
da.DeleteCommand=new OleDbCommand(SQLDelete,con);  
da.InsertCommand=new OleDbCommand(SQLInsert,con);

Har du gort dessa tilldelningar?

Annars finns här en ganska bra och detaljerad artikel i ämnet.

Medlem sedan jan. 20012 204 inlägg
#3

Illa jag läser!

red/ Måste man inte in och leka med "CommandBuilder" då man avänder sig av Command objektet? Dett ifall du tex dumpar allt till en datatable via ett select command och sen ändrar det så kan du få det att sparas via automatik. Kolla manualen i så fall.

Medlem sedan mars 20011 880 inlägg
#4

Nja, CommandBuilder fungerar bara om man enbart har en tabell i databasen....

130 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)