参数化查询时报错,调试时,到:cmd.Parameters.Add(new SqlParameters("UN", username));就提示:SqlParameterCollection 只接受非空的 SqlParameter 类型对象,不接受 SqlParameters 对象。
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            string username = Request.Form["txtAccounts"];
            string password = Request.Form["txtPassword"];
            password = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");            using (SqlConnection conn = new SqlConnection("server=192.168.1.8;database=QPGameUserDB;uid=sa;pwd=suncheng;"))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select count(*) from AccountsInfo where Accounts=@UN and LogonPass=@PW";
                    cmd.Parameters.Add(new SqlParameters("UN", username));
                    cmd.Parameters.Add(new SqlParameters("PW", password));
                    int count = Convert.ToInt32(cmd.ExecuteScalar());
                    if (count > 0)
                    {
                        Response.Redirect("/user/indexhome.aspx");
                    }
                    else
                    {
                        Response.Write("<script>alert('密码或用户名错误!')</script>");
                    }
                }
                conn.Close();
            }
        }

解决方案 »

  1.   

    cmd.Parameters.Add(new SqlParameters("@UN", username));
    cmd.Parameters.Add(new SqlParameters("@PW", password));
      

  2.   

    cmd.Parameters.Add(new SqlParameters("@UN", username));
    cmd.Parameters.Add(new SqlParameters("@PW", password));我错了,我自己不小心多加了个S在后面
      

  3.   

    谢谢wxr0323对新人的帮助,万分感谢。
      

  4.   

    后来你创建的是一个参数,怎能用SqlParameters呢??
      

  5.   

    谢谢taomanman啦,问题解决了,很感谢你。