asp.net中如何进行数据库删除?
我写的删除程序OleDbConnection con = DBAccess.creatOleDbConnection();
con.Open();
OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName=" + this.txtUserName.Text,con);
cmdDelete.ExecuteNonQuery().ToString();
con.Close();
this.lblResult.Text = "删除成功!";
其中页面中有两个textbox,数据库中UserName是主码。
它提示的错误为
至少一个参数没有被指定值。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。
源错误:
行 43: con.Open();
行 44: OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName=" + this.txtUserName.Text,con);
行 45: cmdDelete.ExecuteNonQuery().ToString();
行 46: con.Close();
行 47: this.lblResult.Text = "删除成功!";
如何解决? --------------------编程问答-------------------- try:
--------------------编程问答--------------------
OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName='" + this.txtUserName.Text.Trim()+"'",con);
检查跟踪一下txtUserName有没有值,ManageUser 是否正确
还有就是连接字符串是否对 --------------------编程问答-------------------- 不行啊
字符串的语法错误 在查询表达式 'UserName=aa'' 中。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 字符串的语法错误 在查询表达式 'UserName=aa'' 中。
源错误:
行 43: con.Open();
行 44: OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName=" + this.txtUserName.Text.Trim()+"'",con);
行 45: cmdDelete.ExecuteNonQuery().ToString();
行 46: con.Close();
行 47: this.lblResult.Text = "删除成功!";
--------------------编程问答--------------------
我写的增加语句都可以运行,就是将数据库语句给改了一下... --------------------编程问答-------------------- OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName='" + this.txtUserName.Text.Trim() + "'",con);
have you tried? --------------------编程问答-------------------- 你那个表中有没有ID啊,可以根据id还删除的啊! --------------------编程问答--------------------
有ID,但是textbox输入的值蚂蚁ID这一项...怎么解决? --------------------编程问答--------------------
3楼回复的就是我用这种方法显示的错误..不知道怎么解决... --------------------编程问答-------------------- 跟踪调试sql语句 5楼的应该没问题 --------------------编程问答-------------------- 再试试:
OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName='" + this.txtUserName.Text.Replace("'","''") + "'",con);
--------------------编程问答-------------------- 应该是参数内的单引号没有转义 --------------------编程问答-------------------- 1楼的语句应该没啥问题,试下,还不行的话改用参数试下,实在不行了,就直接传个具体值看能不能删除成功,然后再来动态引用文本框中的值 --------------------编程问答--------------------
把SQL语句提出来会看的清楚一点
string sql="delete from ManageUser where UserName='" + this.txtUserName.Text.Trim() + "'";
OleDbCommand cmdDelete = new OleDbCommand(sql,con); --------------------编程问答-------------------- 把SQL语句提出来会看的清楚一点
string sql="delete from ManageUser where UserName='" + this.txtUserName.Text.Trim() + "'";
OleDbCommand cmdDelete = new OleDbCommand(sql,con);
成功了...
我把它改成这样了就成功了,为什么呢? --------------------编程问答--------------------
估计是你在写SQL语句的过程中多了空格或者少了什么东西,写程序一般尽量分开写清楚点。
补充:.NET技术 , ASP.NET