Ich habe ein vermutl. triviales Problem

02/03/2009 - 16:18 von Thomas Hübner | Report spam
Ich hole mir eine Datatable (oTable) aus einer MDB

Private Sub init()
Application.EnableVisualStyles()
oDB = New DatabaseIO
oDB.OpenConnection()
oAdapter = New OleDbDataAdapter("SELECT * FROM team1",
oDB.oConn)
Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder
(oAdapter)
oTable = New DataTable
oAdapter.Fill(oTable)
oMainform = New frm_Main
oMainform.Show()
End Sub

Funktioniert einwandfrei

Mit folgendem füge ich einen neuen Eintrag der oTable zu (Kontextmenü
eines Treeview)

Private Sub mnu_Add_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles mnu_Add.Click
If Not oTreeView.SelectedNode Is Nothing Then
If oTreeView.SelectedNode.Parent Is Nothing Then
Dim pNode As TreeNode = oTreeView.SelectedNode
oActRow = oTable.Rows.Add()
oActRow!Name = "New Employe"
oActRow!Team = pNode.Name
oAdapter.Update(oTable)
RefreshGui()
End If
End If
End Sub

Der Datensatz landet in der MDB und bekommt eine ID (Primàrschlüssel,
auto increment). Leider bekommt oTable die ID nicht sodass
"RefreshGui" welche den Treview neu làdt und die ID braucht in eine
Ausnahme làuft. Ich habe auch schon erfolglos versucht über
oAdapter.Fill(oTable) nach dem Update die Datatable neu zu laden. Wie
kriege es in den Griff nach zufügen einer Datarow die ID in die
Datatable zu bekommen.

Gruß,
Thomas
 

Lesen sie die antworten

#1 Peter Fleischer
02/03/2009 - 17:35 | Warnen spam
"Thomas Hübner" schrieb im Newsbeitrag
news:

Ich hole mir eine Datatable (oTable) aus einer MDB

oAdapter.Update(oTable)
...

Der Datensatz landet in der MDB und bekommt eine ID (Primàrschlüssel, auto
increment). Leider bekommt oTable die ID nicht sodass "RefreshGui" welche
den Treview neu làdt und die ID braucht in eine Ausnahme làuft. Ich habe
auch schon erfolglos versucht über oAdapter.Fill(oTable) nach dem Update
die Datatable neu zu laden. Wie kriege es in den Griff nach zufügen einer
Datarow die ID in die Datatable zu bekommen.



Hi Thomas,
ohne zu wissen, was für ein Fehler bei welcher Anweisung gemeldet wird und
ohne den Code von "RefreshGui" zu kennen, ist alles wie bei 6 aus 49 :-)

Nach dem Update musst du dir von der Datenbank den vergebenen Autowert
holen. Das geht am einfachsten, wenn du im OnRowUpdating deines oAdapter mit
SELECT @@IDENTITY den zuletzt vergebenen Autowert holst und in den aktuellen
Insert-Datensatz eintràgst. Ein Beispiel dazu steht auf meiner Homepage
unter http://www.informtools.de/kb.aspx?id.


Viele Grüsse
Peter

Ähnliche fragen