【问题标题】:Removing a database row via the C# DataGridView?通过 C# DataGridView 删除数据库行?
【发布时间】:2011-03-17 18:01:27
【问题描述】:

在 .NET 3.5 winforms 应用程序中,我有一个 DataGridView 组件,它使用 TableAdapter 连接 MySQL 数据库。

我可以通过向BindingSource_AddingNew 事件添加代码来添加新记录。

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());
    }
}

我可以通过向BindingSource_CurrentItemChanged 事件添加代码来更新记录。

private void someBindingSource_CurrentItemChanged(object sender, EventArgs e)
{
    DataRow ThisDataRow = ((DataRowView)((BindingSource)sender).Current).Row;
    if (ThisDataRow.RowState == DataRowState.Modified)
    {
        someTableAdapter.Update(ThisDataRow);
    }
}

如何处理删除事件?

** 更新 1 **

为了处理删除事件,添加了一个按钮(您需要在按下按钮之前选择行):

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);

             }
         }

【问题讨论】:

    标签: c# winforms .net-3.5 datagridview


    【解决方案1】:

    您正在寻找DataGridView.UserDeletingRow 事件。

    private void DataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
    {
        // It is a cancellable event, you could cancel the delete on certain conditions.
        e.Cancel = true;
    
    }
    

    【讨论】:

    • @Hiremath - 从 datagridview 中删除该行是正确的。我更新了我的答案,以显示如何也可以从基础数据库中删除记录。
    猜你喜欢
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 2013-08-01
    • 2013-03-30
    相关资源
    最近更新 更多