OleDbCommandBuilder generiert keine INSERT/UPDATE/DELETE

05/02/2008 - 21:49 von Klaus Gollin | Report spam
Hallo liebe Newsgroup-Leser,

ich habe gerade eine Blockade. Ich möchte mit dem OleDbCommandBuilder
Aktualisierungslogik generieren. Das Problem ist, nach Instanzierung des
CommandBuilder Objekts sind bis auf das SELECT Command alle anderen 3
Abfragen Nothing.

Dim strSQL As String = "SELECT * " & _
" FROM Tab " & _
" WHERE ID = ?"

da = New OleDbDataAdapter(strSQL, strConn)
da.SelectCommand.Parameters.AddWithValue("ID", strID)
da.MissingSchemaAction = MissingSchemaAction.AddWithKey ' !

Dim cb As New OleDbCommandBuilder(da)
tbl = New DataTable("Tab")
tbl.PrimaryKey = New DataColumn() {tbl.Columns("ID"), _
tbl.Columns("col2"),
tbl.Columns("col3"), _
tbl.Columns("col4"),
tbl.Columns("col5")}
da.Fill(tbl)

Lt. David Sceppa müssen 3 Kriterien erfüllt sein, dass die Abfragen
generiert werden können: a) Nur Daten einer Tabelle werden zurückgegeben, b)
Tab hat einen Primàrschlüssel und c) der PK ist im Ergebnis der Abfrage
enthalten

Diese 3 Kriterien müssten erfüllt sein.

In der Onlinehilfe steht sinngemàß, dass das SELECT Command gesetzt sein
muss, damit die automatische Generierung funktioniert. Dies müsste der Fall
sein, wenn cn zugewiesen wird.

Weiterhin soll der SELECT ausgeführt werden, damit die Abfragen generiert
werden - und das scheint vielleicht das Problem bei meiner Vorgehensweise zu
sein.

Wann wird die Abfrage denn ausgeführt? Eigentlich doch in der letzten Zeile
beim da.Fill(tbl)?

Aber selbst danach sind die Abfragen immer noch nothing.

Für einen hilfreichen Tip wàre ich sehr dankbar.

Gruß

Klaus
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
05/02/2008 - 22:02 | Warnen spam
Hallo Klaus,

"Klaus Gollin" schrieb:

Das Problem ist, nach Instanzierung des
CommandBuilder Objekts sind bis auf das SELECT Command alle anderen 3
Abfragen Nothing.

Dim strSQL As String = "SELECT * " & _
" FROM Tab " & _
" WHERE ID = ?"



probier mal: SELECT <IDSpalte>, <Spalte2>, <Spalte3>, ... FROM Tab ...

Die Tabelle muss/sollte natürlich einen PrimaryKey haben.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen