Laden...

Update einer Tabelle über das DataGridView

Erstellt von |SmEaGoL| vor 16 Jahren Letzter Beitrag vor 16 Jahren 987 Views
|
|SmEaGoL| Themenstarter:in
24 Beiträge seit 2007
vor 16 Jahren
Update einer Tabelle über das DataGridView

verwendetes Datenbanksystem: MSSQL 2005

Hi Leute,

Ich bin sicher, hier kann mir einer der Profis helfen. Ich benutze VS 2005 und wie oben schon erwähnt MSSQL 2005.

Nun hab ich folgendes. Ich hab mir in mein WinForm ein DataGridView gesetzt und die DataSource in den Properties auf eine Tabelle der SQL Datenbank gesetzt. So dass ganz einfach meine Tabelle im DataGridView wiedergegeben wird. Dies funktionniert auch einwandfrei.

Nun suche ich noch eine einfache Lösung um immer nach dem Event CellLeave automatisch die geänderten Werte aus dem DataGridView in die Tabelle der Datenbank zu schreiben. Also zu aktualisieren. Ich dachte am Anfang, das gehe automatisch, aber leider ist das ja nicht der Fall.

Ich will also, immer wenn ich einen Wert ändere und zB auf Enter drücke, dass dieser Wert dann auch in der Datenbank gesetzt wird.

Ich wäre froh wenn ihr mir dabei helfen könntet. Und bitte nicht in Rätsel schreiben 😉.

Vielen Dank

Z
520 Beiträge seit 2007
vor 16 Jahren

Hier ist nen code der das macht. Ist zwar vb. ds ist das DataSet was mit dem datagridView verbunden ist

Das musste halt dan auf c# umbauen und auf den sqlserver

Dim daadapter2 As OleDbDataAdapter = New OleDbDataAdapter()
        daadapter2.SelectCommand = New OleDbCommand("Select * from " + acctblname, acon)
        Dim custcb As OleDbCommandBuilder = New OleDbCommandBuilder(daadapter2)

        daadapter2.Update(ds)
|
|SmEaGoL| Themenstarter:in
24 Beiträge seit 2007
vor 16 Jahren

Also irgenwie funzt das net bei mir. Oder ich mach da etwas falsch...

Hier is mein Code:


        private void dgvManualImport_CellLeave(object sender, DataGridViewCellEventArgs e)
        {
            SqlDataAdapter da2 = new SqlDataAdapter();
            da2.SelectCommand = new SqlCommand("Select * from MANUAL_IMPORT_TRANS", N_SYPGA_conn);
            SqlCommandBuilder cb = new SqlCommandBuilder(da2);

            da2.Update(dsManualImport_frmManualImport.MANUAL_IMPORT_TRANS);
        }

Hab das also so übernommen wie du gesagt hast, nur noch auf SQLServer und C# umgewandelt. Es tut sich jedoch nix. Keine Fehlermeldung. Er speichert es nur nicht.

Z
520 Beiträge seit 2007
vor 16 Jahren

hmm,

les dir das mal durch:
http://msdn2.microsoft.com/de-de/library/system.data.common.dataadapter.update(VS.80).aspx

und prüfe mal den rowstate der datensätze nach ob der korrekt ist

Edit:
dsManualImport_frmManualImport.MANUAL_IMPORT_TRANS

ist das das dataset das mit dem datagridview verknüft ist, also das dataset aus dem sich das datagridview die daten holt, weil das musst du im updatebefehl angeben

|
|SmEaGoL| Themenstarter:in
24 Beiträge seit 2007
vor 16 Jahren

Genau, das ist das dataset. Im DataGridView wird einfach alles aus der Tabelle MANUAL_IMPORT_TRANS ausgegeben.