用户注册信息的时候 先查询用户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