当前位置:编程学习 > C#/ASP.NET >>

用户注册信息的时候 先查询用户LoginID是否存在 总是在层与层之间调用方法却取不到值

WEB层:
注册按钮触发的click事件

Shop.Model.Users users = new Shop.Model.Users();
            string LoginId = this.txtUsersName.ToString();
            users.LoginId = LoginId;
            users.LoginPwd = this.txtPassword.Text.ToString();
            users.Name = this.txtName.Text.ToString();
            users.Address = this.Address.Text.ToString();
            users.Phone = this.txtPhone.Text.ToString();
            users.Mail = this.txtMail.Text.ToString();//取数据放入实体类
            Shop.BLL.Users bll = new Shop.BLL.Users();
            string msg_Add = string.Empty;//错误信息的记录
            string msg_isNull = string.Empty;

            if (bll.isNull(LoginId,out msg_isNull))
            {
                if (bll.Add(users, out msg_Add))
                {
                    Response.Redirect("msg.aspx?msg=" + Server.UrlEncode(msg_Add) + "&url=index.aspx" + "&txt=" + Server.UrlEncode("跳到首页"));
                }
                else
                {
                    Response.Redirect("Register.aspx");
                }
            }
            else
            {
                Response.Redirect("msg.aspx?msg=" + Server.UrlEncode(msg_isNull) + "&url=index.aspx" + "&txt=" + Server.UrlEncode("跳到首页"));
            }

BLL层


        public bool Add(Shop.Model.Users model, out string msg)
        {
            int i = dal.Add(model);
            if (i > 0)
            {

                msg = "您好,恭喜您注册成功哦";
                return true;
            }
            else
            {
                msg = "您好,注册失败哦";
                return false;
            }
            
        }

        public bool isNull(string LoginId ,out string msg)
        {
            if(DAL.Users.SameOfMail(LoginId) != true)
            {
                msg = "用户已经存在了";
                return false;
            }
            else
            {
                msg = "";
                return true;
            }
            
        }

DAL层


        public static bool SameOfMail(string LoginId)
        {
            string str = "select count(*) from users where LoginId = @LoginId";
            SqlParameter[] par = {
                                     new SqlParameter("@LoginId",SqlDbType.NVarChar,20)
                                     };
            par[0].Value = LoginId;
            int i = DbHelperSQL.getScalar(str, par);

            if (i == 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


DBhelper层



        public static int getScalar(string str, SqlParameter[] par)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
 
                SqlCommand com = new SqlCommand(str, connection);
                com.Parameters.Add(par);
                return (int)com.ExecuteScalar();

            }
            
        }

就是那个LoginID 传递值传不到后面去 

提示是


SqlParameterCollection 只接受非空的 SqlParameter 类型对象,不接受 SqlParameter[] 对象。



做一个简单的 验证LoginId是否存在 希望各位大神帮忙


Login --------------------编程问答-------------------- com.Parameters.Add(par);
=〉
foreach (var item in par)
    com.Parameters.Add(item); --------------------编程问答-------------------- com.Parameters.Add(par);
改成
 foreach (SqlParameter parameter in par)
                {
                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                        (parameter.Value == null))
                    {
                        parameter.Value = DBNull.Value;
                    }
                    com.Parameters.Add(parameter);
                } --------------------编程问答--------------------
foreach (SqlParameter parameter in par)
                 {
                     if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                         (parameter.Value == null))
                     {
                         parameter.Value = DBNull.Value;
                     }
                     com.Parameters.Add(parameter);
                 }
 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,