我正在创建一个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数据库时它没有反映出更改。
答案 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)点击启用此内容。
您的数据库已准备好进行操作......