我写的删除程序
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 = "删除成功!";
如何解决?
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 = "删除成功!";
如何解决?
检查跟踪一下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.Replace("'","''") + "'",con);
把SQL语句提出来会看的清楚一点
string sql="delete from ManageUser where UserName='" + this.txtUserName.Text.Trim() + "'";
OleDbCommand cmdDelete = new OleDbCommand(sql,con);
string sql="delete from ManageUser where UserName='" + this.txtUserName.Text.Trim() + "'";
OleDbCommand cmdDelete = new OleDbCommand(sql,con);
成功了...
我把它改成这样了就成功了,为什么呢?