必须声明标量变量 "@name"。

as86238582 2012-11-29 12:29:07
我定义了一个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: {

-----------------------------

求解
...全文
24953 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_12301 2013-07-31
  • 打赏
  • 举报
回复
没有定义参数!

SqlParameter Name= new SqlParameter("@Name", Model.Name);
cmd.Parameters.Add(Name);
threenewbee 2012-11-29
  • 打赏
  • 举报
回复
加上 cmd.Paramters.AddWithValue("@name", name); cmd.Paramters.AddWithValue("@pwd", pwd); SqlDataReader read = cmd.ExecuteReader(); ...
yyl8781697 2012-11-29
  • 打赏
  • 举报
回复
参数都没有穿进去 当然会抱着个错了
conan8126 2012-11-29
  • 打赏
  • 举报
回复
没有绑定参数
Ahoo 2012-11-29
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
加上 cmd.Paramters.AddWithValue("@name", name); cmd.Paramters.AddWithValue("@pwd", pwd); SqlDataReader read = cmd.ExecuteReader(); ...
+++
王子文龙 2012-11-29
  • 打赏
  • 举报
回复
没有将参数加进去
happytonice 2012-11-29
  • 打赏
  • 举报
回复
数据操作用的参数法,需要声明参数,并对参数赋值
昵称不合法 2012-11-29
  • 打赏
  • 举报
回复
sql语句里有参数,代码里面没声明参数。。。当然不对了。。。
瑞卡哥哥 2012-11-29
  • 打赏
  • 举报
回复
  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";

            //给参数赋值
           cmd.Paramters.AddWithValue("@name", name);
           cmd.Paramters.AddWithValue("@pwd", pwd);


        SqlDataReader read = cmd.ExecuteReader();
        if (read.Read())
        {
            return true;
        }
        else {
            return false;
        }
 
    }

62,054

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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