0

プログラムを実行すると、「スカラー変数 @password12 を宣言する必要があります」という
例外が発生し、ブレークポイントを使用してこのパラメーター変数の値をチェックします
。それは正しかったのですが、どこに問題があるのか​​わかりませんか???

 code:
         public DataSet showoption1(seter set)
            {


                string sql = "SELECT   menue.menuename,roleid, [right].rightname,
      role.rolename, employee.employeename, employee.password FROM  [right] INNER JOIN 
      permission ON [right].rightid = permission.rightid INNER JOIN  role ON    
     permission.roleid = role.roleid INNER JOIN emp_men INNER JOIN employee ON 

    emp_men.employeeid = employee.employeeid ON role.roleid = employee.roleid INNER JOIN
    menue ON emp_men.menueid = menue.menueid where employee.employeenamee=@username AND    
   employee.password=@password12 ";


                SqlCommand cmd = new SqlCommand(sql, con);
                cmd.Parameters.AddWithValue("@username",set.Username);
                cmd.Parameters.AddWithValue("@pasword12",set.Password);
                SqlDataAdapter adptr = new SqlDataAdapter(cmd);

                DataSet ds = new DataSet();
                adptr.Fill(ds);
               int id=  Convert.ToInt32( ds.Tables[2].Rows[0]["rooleid"]);

          st.Username=  Convert.ToString(ds.Tables[2].Rows[id]["roolename"]);

                adptr.Dispose();

                return ds;

            }
4

1 に答える 1

3

打ち間違え:

cmd.Parameters.AddWithValue("@pasword12",set.Password);

する必要があります

cmd.Parameters.AddWithValue("@password12",set.Password);

次の仕事:パスワードをハッシュに置き換え、アカウントごとにソルトします。いいえ、違います。実際のパスワードを保存することは本当に悪い考えです。

于 2012-06-15T11:07:07.007 に答える