【问题标题】:Deleting a row using data grid view from access database in c#在c#中使用access数据库中的数据网格视图删除一行
【发布时间】:2021-10-15 19:48:31
【问题描述】:

我的代码如下:

            foreach (DataGridViewRow row in dtGrdViewOgr.SelectedRows)
        {
            dtGrdViewOgr.Rows.RemoveAt(row.Index);
        }

当从数据网格视图中删除一行时,该代码运行良好,但它不会删除其真正的数据库行。为此,我必须保存已编辑的数据网格视图或编写针对数据库的命令。我不知道在这里使用什么,你能帮我吗?我正在使用 Data.OleDB

【问题讨论】:

    标签: c# database ms-access oledb delete-row


    【解决方案1】:

    试试这样的:

    对于 mssql 标准安全连接字符串:

    constr = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
    
        OleDbConnection con = new OleDbConnection(constr);  
        OleDbCommand delcmd = new OleDbCommand();
        delcmd.CommandText = "DELETE FROM tb1 WHERE ID=" + dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
        con.Open();
        delcmd.Connection = con;
        delcmd.ExecuteNonQuery();
        con.Close();
        dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
    

    【讨论】:

    • 嗯,我收到“System.NullReferenceException:'对象引用未设置为对象的实例。'”错误:oDBCom.CommandText = "DELETE FROM tblOgrBil WHERE ID=" + dtGrdViewOgr.CurrentRow.Cells[0].Value.ToString();
    • 尝试 dataGridView1.SelectedRows[i].Cells[0].Value.ToString() 代替 dataGridView1.SelectedRows[0].Cells[0].Value.ToString() --> 如果你的数据id 是行的第一个单元格。
    • 我实际上在想出自己的解决方案之前尝试过,遗憾的是它给出了完全相同的错误。另外我应该补充一下,你为什么要添加最后一个+ "" 部分?
    • 是的,这部分应该删除。您为此使用哪个事件? DatagridviewChangeIndex,点击等?
    • 我使用 button.click
    猜你喜欢
    • 2021-03-27
    • 2011-03-30
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多