Forum: ADO.NET |
Thema:
Datagrid |
Von:
Ralf Ziola (
12.11.2004 10:01) |
hallo Leute,
ich möchte Daten, die ich ein einem Datagrid geändert habe, in die DB zurückschreiben.
Folgendes habe ich gemacht:
Mein Programm startet. In einer Listbox werden alle Tabellen der vorgegebenen DB aufgelistet. Klicke ich auf eine Tabelle, erscheinen in einer Checklistbox alle Spalten der Tabelle. Jetzt kann ich mir, um Datensätze zu suchen, mehrere Spalten anklicken und es gehen Textboxen auf, um Suchwerte einzutippen. Klicke ich auf suchen, wird mein Datagrid gefüllt.
Dim da As OleDbDataAdapter
Dim ds As DataSet
Private Sub btnSuchen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuchen.Click
Dim strSQL As String = "SELECT * FROM " & lbTabellen.SelectedItem & " WHERE "
MessageBox.Show("Es werde nur 2 Suchkriterien unterstützt !" & vbCrLf _
& "Alle weiteren Eingaben werden ohne Meldung ignoriert !", "Hinweis", MessageBoxButtons.OK, MessageBoxIcon.Information)
If TextBox1.Visible = True And TextBox1.Text <> String.Empty Then
strSQL = strSQL & Label1.Text & " = '" & TextBox1.Text & "'"
End If
If TextBox2.Visible = True And TextBox2.Text <> String.Empty Then
strSQL = strSQL & " AND " & Label2.Text & " = '" & TextBox2.Text & "'"
End If
'MessageBox.Show(strSQL)
db_abfrage(strSQL)
globalSql = strSQL
End Sub
Public Function db_abfrage(ByVal sql As String)
Dim da As New OleDbDataAdapter(sql, Con)
Dim ds As New DataSet
Con.Open()
da.Fill(ds)
Con.Close()
DataGrid1.DataSource = ds.Tables(0)
End Function
Und hiermit wollte ich die geänderten Daten des Datagrid zurückschreiben:
Public Function db_update(ByVal sql As String)
da = New OleDbDataAdapter(globalSql, Con)
Dim cb As New OleDbCommandBuilder(da)
da.UpdateCommand = cb.GetUpdateCommand
'Con.Open()
da.Update(ds.GetChanges)
'Con.Close()
End Function
Was mache ich falsch, oder wie muss ich es machen ??
gruss
ralf
Gruss
Ralf
Betreff |
Von |
Datum |
|
|
Re: Datagrid
Hi Ralf!<br><br>Hab' Dir mal Code ("leider" C#) von mir angehängt, mit dem ich Daten aus einem Datagrid in eine DB zurückschreibe:<br><br><br>OleDbConnection conn = new OleDbConnection(connStr);<br>DataTable dt2... |
|
|
|
|
|
G.
Guest
|
18.11.2004 08:55 |
|
|
Re: Datagrid
Vielen Dank,<br>das kann ich ja problemlos in vb umsetzen.... aber leider hat das bei mir nicht funktioniert.<br>Müssen die Tabellen der DB eigentlich bestimmte vorraussetzungen haben ? (index oder so ?) |
|
|
|
|
|
Ralf
Ziola
|
26.11.2004 11:39 |
|
|
Re: Datagrid
Hallo Ralf<br><br>Du solltest darauf achten das die Tabelle einen PrimaryKey hat.<br><br>cu<br><br>Tobi |
|
|
|
|
|
Tobi
Ulm
|
26.11.2004 13:39 |
|
|
Re: Datagrid
Ha,<br>das ist das Problem.<br>Die Tabellen haben keinen Index..... !<br><br><br><br> |
|
|
|
|
|
Ralf
Ziola
|
15.12.2004 17:52 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!