Gå til innhold

Update requires a valid UpdateCommand...


Anbefalte innlegg

Update requires a valid UpdateCommand when passed DataRow collection with modified rows.

 

Jeg får denne feilmeldinga når jeg skal oppdatere et dataset mot et Accessbase. Har lest meg grønn å blå på diverse sites, og sett på kode, men ingenting hjelper.

 

Om noen ser noen synlige feil, eller har løsninger på hva jeg kan gjøre, så er jeg hjertlig takknemmlig for det.

 

Public Sub sqlPostnr()

kobleTil()

Try

selectCmd = New OleDbCommand()

selectCmd.CommandText = "SELECT txtPostnr, txtPoststed FROM

tblPostnr"

selectCmd.Connection = con

 

insertCmd = New OleDbCommand()

insertCmd.CommandText = "INSERT INTO tblPostnr(txtPostnr,

txtPoststed) VALUES (?,?)"

insertCmd.Connection = con

insertCmd.Parameters.Add(New OleDbParameter("@txtPostnr",

OleDbType.VarWChar, 4, "txtPostnr"))

insertCmd.Parameters.Add(New OleDbParameter("@txtPoststed",

OleDbType.VarWChar, 30, "txtPoststed"))

 

updateCmd = New OleDbCommand()

updateCmd.CommandText = "UPDATE tblPostnr SET txtPostnr = ?,

txtPoststed = ? WHERE txtPostnr = ?"

updateCmd.Connection = con

updateCmd.Parameters.Add(New OleDbParameter("@txtPostnr",

OleDbType.VarWChar, 4, "txtPostnr"))

updateCmd.Parameters.Add(New OleDbParameter("@txtPoststed",

OleDbType.VarWChar, 30, "txtPoststed"))

updateCmd.Parameters.Add(New OleDbParameter("@oldPostnr",

OleDbType.VarWChar, 4, "txtPostnr"))

 

deleteCmd = New OleDbCommand()

deleteCmd.CommandText = "DELETE FROM tblPostnr

WHERE txtPostnr = ?"

deleteCmd.Connection = con

deleteCmd.Parameters.Add(New OleDbParameter("@txtPostnr",

OleDbType.VarWChar, 4, "txtPostnr"))

 

postnrDA = New OleDbDataAdapter()

postnrDA.DeleteCommand = deleteCmd

postnrDA.SelectCommand = selectCmd

postnrDA.InsertCommand = insertCmd

postnrDA.UpdateCommand = updateCmd

postnrDS = New DataSet()

postnrDA.Fill(postnrDS, "tblPostnr")

sqlOppdaterPostnr()

Dim antall As Integer

antall = postnrDS.Tables("tblPostnr").Rows.Count

frmPostnr.OppdaterFelt()

frmPostnr.dgrid.SetDataBinding(postnrDS, "tblPostnr")

Catch feil As Exception

MessageBox.Show(feil.Message)

End Try

 

End Sub

 

 

Editert: var noen gamle linjer som ikke skulle være her i innlegget.

Jeg mener jo også at dette skal se greit ut, men det mener ikke VB.

Endret av CeLiCiUm
Lenke til kommentar
Videoannonse
Annonse

Dette ser jo egentlig greit ut

updateCmd = New OleDbCommand()
updateCmd.CommandText = "UPDATE tblPostnr SET Postnr = ?, 
Poststed = ? WHERE oldPostnr = ?"
updateCmd.Connection = con
updateCmd.Parameters.Add(New OleDbParameter("@txtPoststed", 
OleDbType.VarWChar, 30, "txtPoststed"))
updateCmd.Parameters.Add(New OleDbParameter("@txtPostnr", 
OleDbType.VarWChar, 4, "txtPostnr"))

 

men så setter du command teksten til noe annet og legger til enda flere parametere.

updateCmd.CommandText = "UPDATE tblPostnr SET txtPoststed = ?
WHERE txtPostnr = ?"
updateCmd.Parameters.Add(New OleDbParameter("@txtPoststed", 
OleDbType.VarWChar, 30, "txtPoststed"))
updateCmd.Parameters.Add(New OleDbParameter("@txtPostnr", 
OleDbType.VarWChar, 4, "txtPostnr"))

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...