2012-05-03 73 views
0

所以我創建了這個Dataset ds,並通過其他地方的addrow(「THIS」,「BLOWS」,0)向唯一的表添加了一行。SQL DataAdapter拒絕從數據集更新數據庫

datagridview顯示添加一行實際上工作,但它拒絕更新實際的mySQL數據庫。這就像updatesdb()方法甚至沒有。我的錯誤在哪裏?

class Mitarbeiterdb{ 
    static MySqlConnection con = new MySqlConnection("***"); 
    MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM mitarbeiter.mitarbeiter;", con); 

    DataSet ds = new DataSet(); 

    public void setDataSet(){ 
     da.TableMappings.Add("table0", "Mitarbeiter"); 
     da.Fill(ds); 
    } 


    public void addrow(string a,string b,int i){ 
     con.Open(); 
     DataRow tmprow; 
     tmprow = ds.Tables[i].NewRow(); 
     tmprow[1] = a; 
     tmprow[2] = b; 
     tmprow.EndEdit(); 
     ds.Tables[i].Rows.Add(tmprow); 
     updatedb(); 
     con.Close(); 
    } 

    public void updatedb() { 
     MySqlCommandBuilder cmb = new MySqlCommandBuilder(da); 
     da.Update(ds); 
    } 
} 

回答

0

在你updatedb的()方法你缺少.AcceptChanges();

public void updatedb() { 
    MySqlCommandBuilder cmb = new MySqlCommandBuilder(da); 
    da.Update(ds); 
    da.AcceptChanges(); 
} 

欲瞭解更多信息,請閱讀Here