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

由于 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 回答
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 回答