2

私が使用しているプログラムは、WAMP サーバー (特にその mysql 機能) と MS Visual Studio 2010 で、C# でプログラミングしています。

基本的に、これが私が必要としているものであり、現在アプリケーションで実行できるものです。

私はdatagridviewプロジェクト全体にいくつかの 's を持っています. レコードを挿入できる別のフォームがあり、ユーザーに 2 つのフィールド (名と姓) を要求する削除機能を何とか作成し、これらをクエリに配置してコマンドを実行しました。

私は何をする必要がありますか?

フォームがデータベースを更新するための何らかの方法を実装できる必要があります。datagridviewユーザーが編集中に編集内容を確認できるように、コントロールを使用してこれを行うことにしました。

コントロールのデータに基づいてデータベースを更新しようとした次のコードがありますdatagridview

string connString = "server=localhost;User Id=root;database=collegelist;";
MySqlConnection conn = new MySqlConnection(connString);
string selectSQL = "SELECT * FROM collegeemployee";
conn.Open();
MySqlDataAdapter da = new MySqlDataAdapter(selectSQL, conn);
MySqlCommandBuilder builder = new MySqlCommandBuilder(da);
DataTable table = new DataTable(); 
try
{
    dgView2.Rows.RemoveAt(dgView2.CurrentRow.Index);
    da.Update(table);
}
catch (Exception exceptionObj)
{
    MessageBox.Show(exceptionObj.Message.ToString());
}

このコードの問題 (明らかにメソッドにリストされています) は、グリッドを変更することはできますが、データをデータベースに戻すことができないことです。

4

1 に答える 1

1

空のテーブルでデータベースを更新する代わりに、すべきことは次のとおりです。i. データソースを取得します。のように。データ ソースとデータ アダプターを更新/同期します。動作しない場合は、コメントして問題を教えてください。

string connString = "server=localhost;User Id=root;database=collegelist;";
MySqlConnection conn = new MySqlConnection(connString);
string selectSQL = "SELECT * FROM collegeemployee";
conn.Open();
MySqlDataAdapter da = new MySqlDataAdapter(selectSQL, conn);
MySqlCommandBuilder builder = new MySqlCommandBuilder(da);
    BindingSource BindingSourceToUpdate = (BindingSource)dgView2.DataSource; // because direct casting to data table was failing in VS2o1o

                 try
                {
    dgView2.Rows.RemoveAt(dgView2.CurrentRow.Index);

                    da.Update((DataTable)BindingSourceToUpdate.DataSource);
                }
                catch(exception)
                 {
                 }
conn.close();
于 2012-09-16T11:32:43.547 に答える