0

DataGridView を MySql テーブルにバインドしましたが、DataGridView コントロールと MySql テーブルから行を同時に削除するのに問題があります。

これが私の試みでした:

    //* I used a class called "mySqlInterface to bind my DataGridView control.
    //* "dataTable" is a DataTable that gets filled by the database table
     private void deleteButton_Click(object sender, EventArgs e)
    {

        string accountNum =    clientDGV.SelectedRows[0].Cells[clientDGV.SelectedRows[0].Cells.Count - 1].Value.ToString();
        string selectStr = "account_number = " + accountNum;
        DataRow rowToDelete = mySqlInterface.dataTable.Select(selectStr)[0];
        mySqlInterface.dataTable.Rows.Remove(rowToDelete);
        mySqlInterface.Save(); 
       //Save() executes mySqlDataAdapter.Update(dataTable);
    }

これにより、選択した行が DGV から削除されましたが、DB からは削除されませんでした。

任意のヒント?みんなありがとう!

4

3 に答える 3

1

なぜ最後の行にコメントするのですか?

このコードを試してください:

mySqlDataAdapter.Update(mySqlInterface.dataTable);
于 2012-07-09T03:05:43.793 に答える
0

わかりました、私は数週間前にそれを理解しました:

    string accountNum = clientDGV.SelectedRows[0].Cells[clientDGV.SelectedRows[0].Cells.Count - 1].Value.ToString();
        string selectStr = "account_number = " + accountNum;
        DataRow rowToDelete = mySqlInterface.dataTable.Select(selectStr)[0];
        rowToDelete.Delete();
        mySqlInterface.Save();

私の質問のコードと上記のコードの唯一の違いは、行 mySqlInterface.dataTable.Rows.Remove(rowToDelete); の置き換えです。行 rowToDelete.Delete(); で

削除する行を選択した直後に、Delete() 関数を使用しました。私はこれを以前に試していなかったので、ちょっとばかです。

誰かがこれを行うためのよりクリーンな方法を持っているなら、私はすべての耳です! ありがとう。

于 2012-07-30T04:27:01.567 に答える
0

datagridview は既にデータテーブルにバインドされているため、行を削除するだけで、VB がデータテーブルを処理します。

 For i As Integer = 0 To [datagridview].Rows.Count - 2 
   Me.dgDetalleNota.Rows.RemoveAt(0)    
Next i
于 2014-11-20T23:01:10.617 に答える