0

したがって、このデータセット ds を作成し、addrow("THIS","BLOWS",0) somwhere を介して唯一のテーブルに行を追加します。

データグリッドビューは、行の追加が実際に機能することを示していますが、実際の 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);
    }
}
4

2 に答える 2

0

ADO は、独自に更新するほどスマートではありません。独自の更新ステートメントを設定し、更新する値を入力する必要があります。

da.UpdateCommand = ....

ここに簡単な使用法へのリンクがあります...

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

于 2012-05-03T17:13:21.797 に答える
0

updatedb() メソッドに .AcceptChanges(); がありません。

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

詳細については、こちらをお読みください

于 2012-05-03T17:19:20.460 に答える