本帖最后由 as86238582 于 2012-11-29 00:34:15 编辑 我定义了一个sql类..
这是sql类中的登录方法
public bool checklogin(string name,string pwd)
{
SqlConnection conn = new SqlConnection(sqlstr);
conn.Open();
// 创建命令(SqlCommand)对象(cmd)
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn; // 指示命令发给哪个数据库
cmd.CommandType = CommandType.Text; // 指示是什么类型的命令
cmd.CommandText = "SELECT [username],[password] FROM [user] WHERE [username]=@name and [password]=@pwd";
SqlDataReader read = cmd.ExecuteReader();
if (read.Read())
{
return true;
}
else {
return false;
}
}
在login.aspx.cs调用.
protected void btnLogin_Click(object sender, EventArgs e)
{
string name = this.txtName.Text; //得到登陆帐号
string pwd = this.txtpwd.Text; //得到登陆密码
sql db = new sql();
bool cklogin=db.checklogin(name,pwd);
if(cklogin=true){
Response.Write("<script>alert('恭喜你登录成功')</script>");
}
else{
Response.Write("<script>alert('恭喜你登录失败')</script>");
}
}
为啥总是有如下错误提示
-----------------------------
必须声明标量变量 "@name"。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 必须声明标量变量 "@name"。
源错误:
行 26: cmd.CommandType = CommandType.Text; // 指示是什么类型的命令
行 27: cmd.CommandText = "SELECT [username],[password] FROM [user] WHERE [username]=@name and [password]=@pwd";
行 28: SqlDataReader read = cmd.ExecuteReader();
行 29: if (read.Read())
行 30: {