SQL Dataadapter拒绝从Dataset更新DB

时间:2012-05-03 17:06:51

标签: c# mysql ado.net sql-update dataset

所以我创建了这个数据集ds并通过addrow(“THIS”,“BLOWS”,0)在其他地方向唯一的表添加一行。

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);
    }
}

2 个答案:

答案 0 :(得分:0)

ADO不够智能,无法自行更新,您需要设置自己的更新语句并使用要更新的值填充它。

da.UpdateCommand = ....

这是一个简单用法的链接......

http://www.java2s.com/Code/CSharp/Database-ADO.net/UpdatetableusingSqlDataAdapter.htm

答案 1 :(得分:0)

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

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

有关详细信息,请参阅Here