c# - 如何从datagridview和数据库中删除选定的行

标签 c# winforms datagridview row delete-row

想法是删除时选择的行从datagridview、数据库中删除,然后刷新datagridview。我假设它必须用 SQL 来完成,但是你如何将文本类型的 sqlcommand 与特定行的删除代码链接起来? 数据库由一个表组成,数据网格绑定(bind)到它。

删除按钮:

private void btnBookRecord_Click(object sender, EventArgs e)
{
    if (this.BooksGrid.SelectedRows.Count > 0)
    {
        foreach (DataGridViewRow dgvrCurrent in BooksGrid.SelectedRows)
        {
            if (dgvrCurrent == BooksGrid.CurrentRow)
            {
                BooksGrid.CurrentCell = null;
            }

            // Delete row code here
        }
    }
}

最佳答案

由于某种原因,datagridview 不会更新,即使我从有效的添加按钮复制了刷新代码。但它确实从数据库中删除了记录。

private void deleteRecord()
{
    if (BooksGrid.SelectedRows.Count > 0)
    {
        int selectedIndex = BooksGrid.SelectedRows[0].Index;

        int rowID = int.Parse(BooksGrid[0, selectedIndex].Value.ToString());
        string sql = "DELETE FROM Table1 WHERE RowID = @RowID";

        SqlCommand deleteRecord = new SqlCommand();
        deleteRecord.Connection = Booksconnection;
        deleteRecord.CommandType = CommandType.Text;
        deleteRecord.CommandText = sql;

        SqlParameter RowParameter = new SqlParameter();
        RowParameter.ParameterName = "@RowID";
        RowParameter.SqlDbType = SqlDbType.Int;
        RowParameter.IsNullable = false;
        RowParameter.Value = rowID;

        deleteRecord.Parameters.Add(RowParameter);

        deleteRecord.Connection.Open();

        deleteRecord.ExecuteNonQuery();

        deleteRecord.Connection.Close();

        booksDataset1.GetChanges();

        sqlDataAdapter1.Fill(booksDataset1.Videos);
    }
}

关于c# - 如何从datagridview和数据库中删除选定的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5539243/

相关文章:

c# - 我的多线程创建或覆盖额外/现有线程

c# - 如何以编程方式获取 user.config 文件的位置?

c# - .net 自定义表单甚至处理程序从不同的线程调用并崩溃 VS

vb.net - 如何在排序时保留 DataGridView 的编程彩色背景

c# - 在 mvc 4 中找不到 DbContext

c# - .NET Core 2.0 RSA PlatformNotSupportedException

c# - 调用委托(delegate)时出现 NotImplementedException

c# - 无法在桌面应用程序后面的代码中绑定(bind) GridView

c# - 如何将datagridview中的值存储到集合类C#

c# - 打开另一个应用程序并传入 url