在c#中使用access数据库中的数据网格视图删除一行
Posted
技术标签:
【中文标题】在c#中使用access数据库中的数据网格视图删除一行【英文标题】:Deleting a row using data grid view from access database in c# 【发布时间】:2021-10-15 19:48:31 【问题描述】:我的代码如下:
foreach (DataGridViewRow row in dtGrdViewOgr.SelectedRows)
dtGrdViewOgr.Rows.RemoveAt(row.Index);
当从数据网格视图中删除一行时,该代码运行良好,但它不会删除其真正的数据库行。为此,我必须保存已编辑的数据网格视图或编写针对数据库的命令。我不知道在这里使用什么,你能帮我吗?我正在使用 Data.OleDB
【问题讨论】:
【参考方案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以上是关于在c#中使用access数据库中的数据网格视图删除一行的主要内容,如果未能解决你的问题,请参考以下文章
c# dataGridView对access数据库的增加 修改 删除
如何忽略单元格输入中的制表键而不是制表符?数据网格视图 C#
从对多个数据网格的更改更新本地存储的数据库(Visual Studio C#,使用 OLEDB 的 Access 数据库)