【问题标题】:delete query on access database c#删除访问数据库c#上的查询
【发布时间】:2013-06-11 06:08:06
【问题描述】:

我正在创建一个以 MS Access 作为后端的应用程序。 我正在运行删除查询,但它不起作用 代码:

conchek.ConnectionString = ConfigurationManager.ConnectionStrings["KedarnathDB"].ConnectionString;
conchek.Open();
OleDbCommand cmdc = new OleDbCommand("select * from ReceiptsTrns Where ID=@CallerName", conchek);
cmdc.Parameters.Add("@CallerName", OleDbType.Numeric).Value = txtRcptNo.Text.Trim();
OleDbDataReader rd = cmdc.ExecuteReader();

if (rd.HasRows)
{
 conchek.Close();
 con1.ConnectionString = ConfigurationManager.ConnectionStrings["KedarnathDB"].ConnectionString;
 con1.Open();
 OleDbCommand cmd = new OleDbCommand("DELETE from ReceiptsTrns Where ID=@RCName", con1);
 cmd.Parameters.Add("@RCName", OleDbType.Numeric).Value = txtRcptNo.Text.Trim();
 con1.Close();
 MessageBox.Show("Receipt deleted successfully");
}

else
{
 conchek.Close();
 MessageBox.Show("No receipt found with this number");
}

代码运行成功,但是当我看到我的 MS Access 数据库时它没有反映更改。

【问题讨论】:

  • 您收到Receipt deleted successfully 消息了吗?
  • 请考虑使用比 Access 更强大的东西。与 SQL Server Compact 或 Express 相比,Access 数据库引擎很糟糕。

标签: c# .net winforms ms-access


【解决方案1】:

您的 cmd 上缺少 Execute 调用。您创建它然后关闭连接,数据库永远不会运行该语句。

【讨论】:

  • 我试过这个 cmd.ExecuteNonQuery();但它仍然没有显示数据库中的变化
  • 您是否检查了返回值(受影响的行)并返回 1?
  • 我没有得到你,我从哪里检查这个?
  • ExecuteNonQuery() 方法返回一个值。一个 Int32。这是数据库上受影响的记录数。当您要删除单个记录时,它应该返回 1,如果没有,则该语句没有按照您的预期执行。
【解决方案2】:
con1.ConnectionString =   ConfigurationManager.ConnectionStrings["KedarnathDB"].ConnectionString;

con1.Open();

OleDbCommand cmd = new OleDbCommand("DELETE from ReceiptsTrns Where ID=@RCName", con1);
cmd.Parameters.Add("@RCName", OleDbType.Numeric).Value = txtRcptNo.Text.Trim();
**cmd.ExecuteNoQuery();**
con1.Close();

【讨论】:

  • 我做到了,但它仍然没有显示数据库中的更改
  • @RCName 是否有数字/有效值?
  • 是的!因为它适用于 if 条件,所以我使用了相同的列。
【解决方案3】:

对于相同的问题,我按照以下步骤操作:

1) 打开您的访问数据库,

2) 点击顶部功能区中的 windows 图标,

3) 点击访问选项,

4) 点击信任中心设置,

5) 当内容被阻止时,点击在所有应用程序中显示消息栏

6) 关闭数据库并重新打开,

访问将向您显示警告“数据库中的某些内容已被禁用”

7) 点击选项,

8) 点击启用此内容。

您的数据库已准备好被操作...

【讨论】:

    猜你喜欢
    • 2018-11-09
    • 1970-01-01
    • 2021-01-06
    • 2021-08-06
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多