删除访问数据库c#上的查询

时间:2013-06-11 06:08:07

标签: c# .net winforms ms-access

我正在创建一个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数据库时它没有反映出更改。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我针对同样的问题执行了以下步骤:

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

2)单击顶部功能区中的窗口图标

3)点击访问选项,

4)点击信任中心设置,

5)单击“阻止内容时在所有应用程序中显示消息栏”

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

Access会显示警告“数据库中的某些内容已被禁用”

7)点击选项,

8)点击启用此内容。

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