从绑定到DataGridView -C的数据表中删除行#

时间:2012-07-09 02:38:49

标签: .net datagridview

我已经将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中删除所选行,但不会从数据库中删除。

任何提示?谢谢你们!

3 个答案:

答案 0 :(得分:1)

为什么要评论最后一行?

试试这段代码:

mySqlDataAdapter.Update(mySqlInterface.dataTable);

答案 1 :(得分: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()函数。我之前没有尝试这种做法,我是个白痴。

如果有人有更清洁的方法来做到这一点,我全都耳朵!感谢。

答案 2 :(得分:0)

由于datagridview已经绑定到您的数据表,因此您唯一需要做的就是从中删除行,VB将处理您的数据表。

 For i As Integer = 0 To [datagridview].Rows.Count - 2 
   Me.dgDetalleNota.Rows.RemoveAt(0)    
Next i