通过C#的DataGridView删除数据库行? [英] Removing a database row via the C# DataGridView?
问题描述
在一个.NET 3.5的WinForms应用程序,我有一个使用的TableAdapter
到MySQL数据库的的DataGridView
部分。
我可以通过增加code到 BindingSource_AddingNew
事件中加入一个新的记录。
私人无效someBindingSource_AddingNew(对象发件人,AddingNewEventArgs E)
{
的DataRow ThisDataRow =((DataRowView的)((的BindingSource)发送方).Current).Row;
如果(ThisDataRow.RowState == DataRowState.Added)
{
someTableAdapter.Insert(ThisDataRow.ItemArray [1]的ToString());
}
}
和我能够通过增加code到 BindingSource_CurrentItemChanged
事件更新的记录。
私人无效someBindingSource_CurrentItemChanged(对象发件人,EventArgs的)
{
的DataRow ThisDataRow =((DataRowView的)((的BindingSource)发送方).Current).Row;
如果(ThisDataRow.RowState == DataRowState.Modified)
{
someTableAdapter.Update(ThisDataRow);
}
}
我如何处理删除事件?
**更新1 **
要处理删除事件添加一个按钮(你需要$ P $之前选择行pssing按钮):
私人无效btnDelete_Click(对象发件人,EventArgs的)
{
INT32 selectedRowCount = dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected);
如果(selectedRowCount大于0)
{
的for(int i = 0; I< selectedRowCount;我++)
{
//从数据库中删除
someTableAdapter.Delete(Convert.ToUInt16(dataGridView1.Rows[dataGridView1.SelectedRows[i].Index].Cells[0].Value));
//刷新datagridview的
this.dataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedRows [I] .Index);
}
}
您正在寻找<一href="http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.userdeletingrow%28v=VS.90%29.aspx"相对=nofollow> DataGridView.UserDeletingRow 事件。
私人无效DataGridView1_UserDeletingRow(对象发件人,DataGridViewRowCancelEventArgs E)
{
//这是一个撤消事件,你可以取消删除某些条件。
e.Cancel =真;
}
In a .NET 3.5 winforms application I have a DataGridView
component that uses a TableAdapter
to a MySQL database.
I am able to add a new record by adding code to the BindingSource_AddingNew
event.
private void someBindingSource_AddingNew(object sender, AddingNewEventArgs e)
{
DataRow ThisDataRow = ((DataRowView)((BindingSource)sender).Current).Row;
if (ThisDataRow.RowState == DataRowState.Added)
{
someTableAdapter.Insert(ThisDataRow.ItemArray[1].ToString());
}
}
and I am able to update a record by adding code to the BindingSource_CurrentItemChanged
event.
private void someBindingSource_CurrentItemChanged(object sender, EventArgs e)
{
DataRow ThisDataRow = ((DataRowView)((BindingSource)sender).Current).Row;
if (ThisDataRow.RowState == DataRowState.Modified)
{
someTableAdapter.Update(ThisDataRow);
}
}
How do I handle a delete event?
** UPDATE 1 **
To handle a delete event a button was added (you need to select the row before pressing the button):
private void btnDelete_Click(object sender, EventArgs e)
{
Int32 selectedRowCount = dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected);
if (selectedRowCount > 0)
{
for (int i = 0; i < selectedRowCount; i++)
{
//delete from database
someTableAdapter.Delete(Convert.ToUInt16(dataGridView1.Rows[dataGridView1.SelectedRows[i].Index].Cells[0].Value));
//refresh datagridview
this.dataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedRows[i].Index);
}
}
You are looking for DataGridView.UserDeletingRow event.
private void DataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
// It is a cancellable event, you could cancel the delete on certain conditions.
e.Cancel = true;
}
这篇关于通过C#的DataGridView删除数据库行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!