DataGridView und Datenbank (MS SQL Server 2005)



  • Hallo,

    ich habe ein Problem. Ich habe ein DataGridview, welches mit Werten befüllt. Die Werte stehen in einem DataTable(was über ein SQLDataAdapter befüllt wird), welches ich dann an das DataGridView binde. Nun können diese Werte im DataGridView auch geändert werden oder auch neue hinzugefügt werden. Über ein Button sollen dann die geänderten oder auch neu hinzugefügten Werte wieder zurück in die Datenbank geschrieben werden. Soweit ich das verstanden habe, funktioniert das wiederum über den SQLDataAdapter mit .Update. Jedoch funktioniert es bei mir nicht so, da mein DataTable wenn dann noch mit den alten Werten aus der Datenbank befüllt ist. Ich weiss nicht wie ich das anders machen kann 😞

    Wäre sehr dankbar über eine Hilfe.



  • Zeig mal ein bisschen Code.



  • public DataTable RückgabeDataTable()
    {
    sql_connection = anmeldungsql.AnmeldungSQL();
    
     sql_connection.Open();
    
    instruction = "Select * from Tabelle1";
    
     sqlDataAdapter = new SqlDataAdapter(instruction, sql_connection);
    
     sqlDataAdapter.Fill(dataTable);
    
    sql_connection.Close();
    
    return dataTable;
    
    }
    
    form1= new form1(); 
    
    dataGridView1.DataSource = bindingSource1;
    bindingSource1.DataSource = form1.RückgabeDataTable();
    
    private void toolStripButtonHinzufügen_Click(object sender, EventArgs e)
     {
              sqlDataAdapter.Update(form1.RückgabeDataTable());
     }
    

    ich hoffe das ist ausreichend.



  • Du mußt dem Adapter ein Commandbuilder spendieren damit er die Update/delete/insert-Sql-Anweiszungen bauen kann.

    SqlCommandBuilder builder = new SqlCommandBuilder(sqlDataAdapter);
    


  • danke schonmal, aber so richtig hilft mir das nicht weiter:

    private void toolStripButtonHinzufügen_Click(object sender, EventArgs e)
    {
        DataTable datat = new DataTable();
    
    //hier möchte aber nicht die Werte aus der Datenbank, sondern die Werte vom DataGridView!!!!???????       
      sqlDataAdapter = new SqlDataAdapter("Select * from tabelle1", sql_connection);
    
      sqlDataAdapter.Fill(datat);
      SqlCommandBuilder sqlCommandBuilder = new SqlCommandBuilder(sqlDataAdapter);
    
      sqlDataAdapter.Update(datat);
    }
    

Log in to reply