必须声明标量变量“@usrid”

Must declare the scalar variable "@usrid"

我想将两个文本值(登录名和登录密码)与 sql 数据库中的现有值进行比较。在执行下面的代码时,我收到一个错误,因为 必须声明标量变量“@usrid”

请有人帮忙解决这个错误。

我是 ASP.Net、C# 的新手。


protected void btnLoginTL_Click(object sender, EventArgs e)

{
    string strtl = "Data Source=Server\SQLER2;Initial Catalog=MTD;Persist Security Info=True;User ID=sa;Password='rro@123'";

    SqlConnection conn=new SqlConnection(strtl);
    conn.Open();
    string usrid = txtbxLoginNameTL.Text;
    string usrpswd = txtbxLoginPasswordTL.Text;
    string squery="Select usridmtld, passwordmtld from mobteldet.mobtellogin where usridmtld=@usrid and passwordmtld=@usrpswd";
    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = squery;
    cmd.Parameters.AddWithValue("@usridmtld", usrid);
    cmd.Parameters.AddWithValue("@passwordmtld", usrpswd);
    cmd.Connection = conn;
    SqlDataReader sdr = cmd.ExecuteReader();

    if (sdr!=null && sdr.HasRows)
    {
        Response.Redirect("Telelist.aspx");
    }
    else
    {
        Response.Write("Enter correct user name & password");
    }
}

您正在添加名称为的参数:

cmd.Parameters.AddWithValue("@usridmtld", usrid);
cmd.Parameters.AddWithValue("@passwordmtld", usrpswd);

在您的查询参数有冲突时,更改您的查询:

Select usridmtld, passwordmtld 
from mobteldet.mobtellogin 
where usridmtld=@usridmtld 
and passwordmtld=@passwordmtld // note parameter variables

或更改您的参数:

cmd.Parameters.AddWithValue("@usrid", usrid);
cmd.Parameters.AddWithValue("@usrpswd", usrpswd);

您用列名代替了参数。

改变

cmd.Parameters.AddWithValue("@usridmtld", usrid);

cmd.Parameters.AddWithValue("@usrid", usrid);