【问题标题】:Delete Completely from MS Access Database and Gridview Winforms Devexpress?从 MS Access 数据库和 Gridview Winforms Devexpress 中完全删除?
【发布时间】:2014-02-08 13:06:53
【问题描述】:

我可以临时删除 gridview 中选定的行,当我再次打开同一个表单时,它会使用此代码再次显示所有行

gridview1.DeleteselectedRows(); 

但是我还需要从数据库中完全删除,所以我尝试了这段代码,但是这段代码从 gridview 中删除了选定行的下一行或选定行的上一行。这段代码有什么问题?

gridview1.DeleteselectedRows();                                                         object temp = gridView1.GetFocusedRowCellValue("InvoiceNumber");

validateDept.InitializeConnection();
OleDbConnection con = new OleDbConnection(validateDept.connetionString);
con.Open();
OleDbCommand delete1 = new OleDbCommand("delete from NewInvoice_1 where InvoiceNumber=" + temp, con);
OleDbCommand delete2 = new OleDbCommand("delete from NewInvoice_2 where InvoiceNumber=" + temp, con);
delete1 .ExecuteNonQuery();
delete2 .ExecuteNonQuery();
con.Close();

【问题讨论】:

  • 您确定您的临时对象是一个正确值为 InvoiceNumber 的字符串吗?
  • 是的,它得到了正确的价值,但我现在更新了代码中的小修正
  • 您的 gridview1.DeleteselectedRows() 是先完成然后删除命令吗?如果是,它会删除您想要关注的那一行并将焦点移到下一行
  • 是的,我做到了,现在我得到了谢谢
  • 是否可以在关闭连接后添加此gridview1.DeleteselectedRows(); 行?工作正常吗?

标签: c# winforms gridview devexpress


【解决方案1】:
validateDept.InitializeConnection();
OleDbConnection con = new OleDbConnection(validateDept.connetionString);
con.Open();
OleDbCommand delete1 = new OleDbCommand("delete from NewInvoice_1 where InvoiceNumber=" +        temp, con); 
OleDbCommand delete2 = new OleDbCommand("delete from NewInvoice_2 where InvoiceNumber=" + temp, con);
delete1 .ExecuteNonQuery();
delete2 .ExecuteNonQuery();
con.Close();

不要先写gridview1.DeleteselectedRows();这一行,因为它会从gridview中删除选定的行并跳转到下一行,然后数据库将删除下一行,所以会出现问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多