Forums Neueste Beiträge
 

Keine Datenspeicherung in der Datenbank

28/10/2008 - 15:10 von Sebastian Schicker | Report spam
Hallo,
habe versehentlich mein Problem schon im .Net VB Forum gepostet also sorry
für den Doppelpost.

Ich habe ein eigenartigen Fehler den ich leider nicht raus bekomme.
Ich möchte Daten in einer Datenbank updaten. Die zu bearbeitenden Zellen
sind bzw. sollen leer sein. Ein Feld ist ein Bool- Feld, das andere wird mit
Text gefüllt. Die Datenbank ist in Access 2007 erstellt und liegt in einem
seperaten Ordner. Ich greife über ein Connection-String auf diese zu. Sie ist
nicht in das Projekt dierekt eingebunden. Soll heisen keine Verbindung im
VB-Verbindungs Explorer. Somit wàre das Problem welches ich hier schon
nachlesen konnte, dass ich eine Kopie meiner Datenbank öffne schon mal aus
dem weg (hoffe ich ).
Mein problem ist nun, das mein Syntax anscheinend stimmt, da ich keine
Fehlermeldung oder àhnliches erhalte. Ich sehe die Daten im Dataset über ein
DataGrid allerdings stehen die Daten nach dem Update vom Datenbankadapter
nicht in der Datenbank. Hier mal der Quelltext dazu. (Kann man eigentlich ein
Update auf eine leere Zelle durchführen oder wàre da Insert besser? Habe es
auch schon damit versucht und es funktionierte leider auch nicht.)

Private db As OleDbConnection = New OleDbConnection
Private comm As OleDbCommand = New OleDbCommand
Private adapt As OleDbDataAdapter = New OleDbDataAdapter
Private dsdaten As DataSet = New DataSet
Private dvdaten As DataView = New DataView

Private Sub MenuItemLaden_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItemLaden.Click

GBLaden.Location = New Point(16, 16)
GBLaden.Visible = True

constring()

db.Open()
comm.Connection = db
comm.CommandText = "SELECT * FROM Projekte"

adapt.SelectCommand = comm
adapt.Fill(dsdaten, "Projekte")

db.Close()

Dim i As Integer = 0

For i = 0 To dsdaten.Tables.Count

CBProjektListe.Items.Add(dsdaten.Tables("Projekte").Rows(i).Item(1))
Next
End Sub

Private Sub btnLaden_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnLaden.Click

dvdaten.Table = dsdaten.Tables("Projekte")

dvdaten.RowFilter = "Name LIKE '" & CBProjektListe.SelectedItem & "'"

'überprüfung ob Projekt schon geöffnet wird
If dvdaten.Item(0).Item(4) = True Then
MsgBox("Das gewünschte Projekt ist derzeit durch " &
dvdaten.Item(0).Item(5) & " belegt.)
Exit Sub
Else

db.Open()

dvdaten.Item(0).Item(4) = True '<-- dieser werte müssen eingetragen werden
dvdaten.Item(0).Item(5) = "Mr.X" '<-- den Benutzernamen lese ich noch aus

DataGrid1.DataSource = dsdaten
dsdaten.AcceptChanges()
comm.Connection = db
comm.CommandText = "UPDATE Projekte SET Open = '" &
dvdaten.Item(0).Item(4) & "', CurrentUser = '" & dvdaten.Item(0).Item(5) & "'
WHERE ProjektID = '" & dvdaten.Item(0).Item(0) & "'"

'comm.CommandText = "INSERT INTO Projekte (Open, CurrentUser)
VALUES (" & dvdaten.Item(0).Item(4) & "," & dvdaten.Item(0).Item(5) & ")
WHERE ProjketID = " & dvdaten.Item(0).Item(0) & ""

MsgBox(comm.CommandText)
adapt.UpdateCommand = comm
Try
adapt.Update(dsdaten, "Projekte")
Catch ex As Exception
MsgBox(ex.Message)
Finally
db.Close()
End Try
End If
End Sub

Danke schon mal im vorraus.
 

Lesen sie die antworten

#1 Peter Götz
28/10/2008 - 16:30 | Warnen spam
Hallo Sebastian,

habe versehentlich mein Problem schon im .Net VB
Forum gepostet



... und dort habe ich Dir auch schon eine
ausführliche Antwort geschrieben die neben
div. anderen Unstimmigkeiten in Deinem Code
auch die Ursache für das "nicht Speichern"
Deiner Daten aufzeigt.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen