当前位置:编程学习 > C#/ASP.NET >>

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);
--------------------编程问答--------------------
引用楼主 o00hui 的回复:
OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName=" + this.txtUserName.Text,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 = "删除成功!";
 
--------------------编程问答--------------------
引用 2 楼 ly302 的回复:
引用楼主 o00hui 的回复:
OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName=" + this.txtUserName.Text,con);

检查跟踪一下txtUserName有没有值,ManageUser 是否正确

还有就是连接字符串是否对

我写的增加语句都可以运行,就是将数据库语句给改了一下... --------------------编程问答-------------------- OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName='" + this.txtUserName.Text.Trim() + "'",con);

have you tried? --------------------编程问答-------------------- 你那个表中有没有ID啊,可以根据id还删除的啊! --------------------编程问答--------------------
引用 6 楼 zhoulingsmile 的回复:
你那个表中有没有ID啊,可以根据id还删除的啊!

有ID,但是textbox输入的值蚂蚁ID这一项...怎么解决? --------------------编程问答--------------------
引用 5 楼 q107770540 的回复:
OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName='" + this.txtUserName.Text.Trim() + "'",con);

have you tried?

3楼回复的就是我用这种方法显示的错误..不知道怎么解决... --------------------编程问答--------------------
引用 8 楼 o00hui 的回复:
引用 5 楼 q107770540 的回复:
OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName='" + this.txtUserName.Text.Trim() + "'",con);

have you tried?

3楼回复的就是我用这种方法显示的错误..不知道怎么解决……
   跟踪调试sql语句 5楼的应该没问题 --------------------编程问答-------------------- 再试试:


OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName='" + this.txtUserName.Text.Replace("'","''") + "'",con);
--------------------编程问答-------------------- 应该是参数内的单引号没有转义 --------------------编程问答-------------------- 1楼的语句应该没啥问题,试下,还不行的话改用参数试下,实在不行了,就直接传个具体值看能不能删除成功,然后再来动态引用文本框中的值 --------------------编程问答--------------------
引用 8 楼 o00hui 的回复:
引用 5 楼 q107770540 的回复:
OleDbCommand cmdDelete = new OleDbCommand("delete from ManageUser where UserName='" + this.txtUserName.Text.Trim() + "'",con);

have you tried?

3楼回复的就是我用这种方法显示的错误..不知道怎么解决……


把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);
成功了...
我把它改成这样了就成功了,为什么呢? --------------------编程问答--------------------
引用 14 楼 o00hui 的回复:
把SQL语句提出来会看的清楚一点
string sql="delete from ManageUser where UserName='" + this.txtUserName.Text.Trim() + "'";
OleDbCommand cmdDelete = new OleDbCommand(sql,con);
成功了...
我把它改成这样了就成功了,为什么呢?

估计是你在写SQL语句的过程中多了空格或者少了什么东西,写程序一般尽量分开写清楚点。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,