我已经将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中删除所选行,但不会从数据库中删除。
任何提示?谢谢你们!
答案 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