如何从DataGridView和数据库中删除选定的行 [英] How to delete a selected row from datagridview and database

查看:116
本文介绍了如何从DataGridView和数据库中删除选定的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

的想法是,删除时所选择的行被从datagridview的,数据库中取出,然后datagridview的被刷新。我认为它必须与SQL做,但你会怎么链接文本类型的SqlCommand时删除代码与特定行?
数据库由一个单一的表和DataGrid绑定到它



删除按钮:

 私人无效btnBookRecord_Click(对象发件人,EventArgs五)
{
如果(this.BooksGrid.SelectedRows.Count大于0)
{
的foreach(的DataGridViewRow dgvrCurrent在BooksGrid.SelectedRows)
{
如果(dgvrCurrent == BooksGrid.CurrentRow)
{
BooksGrid.CurrentCell = NULL;
}

//删除此行代码
}
}
}


解决方案

由于某种原因在DataGridView将不会更新,即使我复制从添加按钮,它的工作原理刷新代码。但它确实删除数据库中的记录。

 私人无效deleteRecord()
{
如果(BooksGrid .SelectedRows.Count大于0)
{
INT的selectedIndex = BooksGrid.SelectedRows [0]的.index;

INT ROWID = int.Parse(BooksGrid [0的selectedIndex] .Value.ToString());
字符串SQL =DELETE FROM表1 WHERE的RowID = @RowID;

的SqlCommand deleteRecord =新的SqlCommand();
deleteRecord.Connection = Booksconnection;
deleteRecord.CommandType = CommandType.Text;
deleteRecord.CommandText = SQL;

的SqlParameter RowParameter =新的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);
}
}


The idea is that the row that is selected when deleted gets removed from datagridview, database and then datagridview gets refreshed. I assume it has to be done with SQL but how would you link that sqlcommand of type text with a delete code with that particular row? The database consists of one single table and the datagrid is bound to it.

Delete button:

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
        }
    }
}

解决方案

For some reason the datagridview won't update, even though I copied the refresh code from add button which works. But it does delete the record from database.

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

这篇关于如何从DataGridView和数据库中删除选定的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆