如何通过c#对ACCESS数据库进行操作

hefang724 2014-12-16 05:31:31
private void button4_Click_1(object sender, EventArgs e)
{

if (sc_name.Text != "")
{
string sql = "delete from stu where 姓名=@name";
if (connection.State != ConnectionState.Open)
connection.Open();
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.Parameters.AddWithValue("@name", sc_name.Text);
cmd.ExecuteNonQuery();
//cmd.Dispose();
connection.Close();
MessageBox.Show("删除完毕!!!");
}

}
执行以后出现“System.Data.OleDb.OleDbException”类型的未经处理的异常在 System.Data.dll 中发生

其他信息: 至少一个参数没有被指定值。该如何解决?
...全文
360 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2015-02-06
  • 打赏
  • 举报
回复
抱歉,mysql是?,不是&,特此更正
於黾 2015-02-06
  • 打赏
  • 举报
回复
每种数据库不一样 比如mysql用的就是& 你换成#试试 最好还是查查到底该怎么用,不要乱试
TianShangYouHuiJi 2015-02-06
  • 打赏
  • 举报
回复
access参数化查询和sqlserver的不一样,不能用@ http://www.cnblogs.com/liuruitao/p/4184858.html
  • 打赏
  • 举报
回复
C#高级编程7 中文版http://download.csdn.net/detail/taoerit/8304921
gzqGyula 2014-12-17
  • 打赏
  • 举报
回复
应该是你这段代码有问题
cmd.Parameters.AddWithValue("@name", "401");
你用下面这种方式试试看还会不会出现

OleDbCommand cmd = new OleDbCommand(“delete from 02 where id=401”, connection);
wind_cloud2011 2014-12-16
  • 打赏
  • 举报
回复
  我代码测试正常     string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=temp.mdb"; OleDbConnection connection = new OleDbConnection(strConn); string sql = "delete from 02 where id=@name"; if (connection.State != ConnectionState.Open) connection.Open(); OleDbCommand cmd = new OleDbCommand(sql, connection); cmd.Parameters.AddWithValue("@name", "401"); cmd.ExecuteNonQuery(); connection.Close(); MessageBox.Show("删除完毕!!!");
wind_cloud2011 2014-12-16
  • 打赏
  • 举报
回复
你的sc_name.Text用一个具体名字来测试一下

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧