| Forum: VB.NET |
Thema:
Datensatz ändern mit ADO.NET |
Von:
G. Guest (
09.06.2004 12:41) |
Hallo Leute,
ich möchte mit ADO.NET einen Datensatz in einer Access DB ändern. Laut msdn sollte das eigentlich so funktionieren. Das komische ist, das ich keine Fehlermeldung bekomme. Es passiert einfach gar nichts.
Private Sub aendern_DS()
Try
'Änderungen werden an die DB übergeben
'sql String erstellen
Dim sqlStr As String = "SELECT * FROM Kunden"
' erstellt ein DataAdapterObject
Dim da As OleDbDataAdapter = New OleDbDataAdapter(sqlStr, conn)
' erstellt ein DatasetObject und füllt es mit den Nutzerdaten mit dem Fill - Objekt
Dim ds As DataSet = New DataSet
da.Fill(ds, "Kunden")
conn.Close()
Dim sperre_wert As Integer
If (sperre.Checked = True) Then
sperre_wert = 1
Else
sperre_wert = 0
End If
'Command String
Dim UpdateSql As String
UpdateSql = "Update Kunden Set k_nummer=" & "'" & txt_kundennummer.Text & "'" & _
",k_internet=" & "'" & txt_web_link.Text & "'" & _
",k_mail=" & "'" & txt_mail.Text & "'" & _
",k_geb=" & "'" & txt_gebdatum.Text & "'" & _
",k_sperre=" & "'" & sperre_wert & "'" & _
",k_telefon=" & "'" & txt_telefon.Text & "'" & _
",k_fax=" & "'" & txt_fax.Text & "'" & _
",k_name=" & "'" & txt_name.Text & "'" & _
",k_vorname=" & "'" & txt_vorname.Text & "'" & _
",k_firma=" & "'" & txt_firma.Text & "'" & _
",k_anschrift=" & "'" & txt_strasse.Text & "'" & _
",k_plz=" & "'" & txt_plz.Text & "'" & _
",k_ort=" & "'" & txt_ort.Text & "'" & _
",k_bank=" & "'" & txt_bank.Text & "'" & _
",k_blz=" & "'" & txt_blz.Text & "'" & _
",k_kontonr=" & "'" & txt_kontonummer.Text & "'" & _
" WHERE k_ID=" & "'" & kund_ID & "'"
'OleDbCommand Objekt erzeugen
Dim cmd As New OleDbCommand(UpdateSql, conn)
'Update Command Objekt erzeugen
da.UpdateCommand = cmd
conn.Open()
'Updaten
da.Update(ds, "kunden")
'Connection schließen
conn.Close()
Catch a As Exception
MsgBox(a, Title:="Kunden bearbeiten, Ändern")
End Try
End Sub
Das ist der generierte sql-String:
Update Kunden Set k_nummer='3',k_internet='dfghhdhsh',k_mail='gfhfhhhdhf',k_geb='',k_sperre='0',k_telefon='gfhfhfhhdf',k_fax='sdgdsfgsdgsd',k_name='fhsdfhdf',k_vorname='',k_firma='',k_anschrift='',k_plz='',k_ort='',k_bank='',k_blz='',k_kontonr='' WHERE k_ID=3
Wenn ich den in Access eingebe, wird die Änderung ausgeführt. Woran kann es jetzt noch, liegen das VB.NET diese DB-Änderung nicht ausführt?
Mathias
| Betreff |
Von |
Datum |
|
|
  |
Re: Datensatz ändern mit ADO.NET
| Die where Klausel muss ohne "'" erfolgen,<br>wenn kund_ID vom Typ integer ist.<br><br>" WHERE k_ID=" & "'" & kund_ID & "'"<br><br>im generierten sql-string auch richtig:<br>WHERE k_ID=3 |
 |
 |
 |
|
|
Guido
Nachtigall
|
09.06.2004 16:12 |
|
|
  |
Re: Datensatz ändern mit ADO.NET
| Hi Mathias,<br>das sieht so aus, als hast Du da was durcheinander gekriegt: Das UpdateCommand im DataAdapter ident nicht dazu die Werte zu ändern, sondern soll die geänderten Werte aus, dem DataSet in... |
 |
 |
 |
|
|
Klaas
Wedemeyer
|
09.06.2004 16:19 |
|
|
  |
Re: Datensatz ändern mit ADO.NET
| Ich habe es versucht. ds.select gibt es nicht. Dafür aber <br>ds.Tables("kunden").Rows(0) oder ds.Tables("kunden").Select()<br>Ich hab mich für das ds.Tables("kunden").Rows(0) entschieden und die Wahl... |
 |
 |
 |
|
|
G.
Guest
|
10.06.2004 14:10 |
|
|
  |
Re: Datensatz ändern mit ADO.NET
| Ok<br>ich mach das mal DevStudio und schreibe Dir jeden Schritt auf:<br>- Ein VB Anwendung erzeugen<br>- Toolbox/Daten/Dataset auf den Dialog ziehen (Wizard erscheint)<br>- Nicht Typisiertes Dataset / OK<br>-... |
 |
 |
 |
|
|
Klaas
Wedemeyer
|
10.06.2004 14:38 |
|
|
  |
Re: Datensatz ändern mit ADO.NET
| Ups...<br>Die Datenbank macht er von alleine auf und zu.<br>im "Vom Windows Form Designer generierter Code" findest Du die Commandanweisungen, die der Adapter brauch, um auf die DB zuzugreifen.<br><br>Dataset... |
 |
 |
 |
|
|
Klaas
Wedemeyer
|
10.06.2004 14:43 |
|
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!