private const string SQL_SELECT_USERINFO_U_P = "select @AuthorName,@PassWord from UserInfo"; public static UserInfo SelectUserInfo(UserInfo user) { using (SqlDataReader rdr = SQLHelper.ExecuteReader(CommandType.Text, SQL_SELECT_USERINFO_U_P, new SqlParameter("@AuthorName",user.AuthorName), new SqlParameter("@PassWord",user.PassWord))) { if (rdr.Read()) { user = new UserInfo(rdr.GetString(0), rdr.GetString(1)); return user; } rdr.Close(); } return null;BLL层: public static UserInfo SelectUserInfo(UserInfo user) { return UserInfoService.SelectUserInfo(user); } WEB层: protected void Button1_Click(object sender, EventArgs e) { string AuthorName = this.txtUserName.Text.Trim(); string Password = this.txtPassword.Text.Trim(); UserInfo user = new UserInfo(AuthorName, Password); if (UserInfoManager.SelectUserInfo(user) == null) { this.lblErrorMessage.Text = "登录失败!"; } else { Session["info"] = user; Response.Redirect("~/Main.aspx"); } }为什么我的数据都传不过来啊,验证都不管用的,还有我的Model是有2个构造方法的,这里的Session如果保存了能不能把实体类里的所有字段都保存了呢?
if (rdr.Read()) { user = new UserInfo(rdr.GetString(0), rdr.GetString(1)); return user; } return null; rdr.Close(); }换个位置。。 要么你的方法永远都为null
public static UserInfo SelectUserInfo(UserInfo user) { using (SqlDataReader rdr = SQLHelper.ExecuteReader(CommandType.Text, SQL_SELECT_USERINFO_U_P, new SqlParameter("@AuthorName",user.AuthorName), new SqlParameter("@PassWord",user.PassWord))) { if (rdr.Read()) { user = new UserInfo(rdr.GetString(0), rdr.GetString(1)); return user; } rdr.Close(); } return null; 貌似这个方法的返回值永远是null吧?
if (rdr.Read()) { user = new UserInfo(rdr.GetString(0), rdr.GetString(1)); return user; } else { user=new UserInfo(); } rdr.Close(); } return user;
貌似我的SQL语句写错了 select * from UserInfo where AuthorName=@AuthorName and PassWord=@PassWord 问题已得到解决 谢谢各位
string str="";
Response.Redirect("b.aspx?str="+str);
Request.QueryString["str"]
还有session,cookie,server.transfer
private const string SQL_SELECT_USERINFO_U_P = "select @AuthorName,@PassWord from UserInfo"; public static UserInfo SelectUserInfo(UserInfo user)
{
using (SqlDataReader rdr = SQLHelper.ExecuteReader(CommandType.Text,
SQL_SELECT_USERINFO_U_P,
new SqlParameter("@AuthorName",user.AuthorName),
new SqlParameter("@PassWord",user.PassWord)))
{
if (rdr.Read())
{
user = new UserInfo(rdr.GetString(0), rdr.GetString(1));
return user;
}
rdr.Close();
} return null;BLL层:
public static UserInfo SelectUserInfo(UserInfo user)
{
return UserInfoService.SelectUserInfo(user);
}
WEB层:
protected void Button1_Click(object sender, EventArgs e)
{
string AuthorName = this.txtUserName.Text.Trim();
string Password = this.txtPassword.Text.Trim(); UserInfo user = new UserInfo(AuthorName, Password); if (UserInfoManager.SelectUserInfo(user) == null)
{
this.lblErrorMessage.Text = "登录失败!";
}
else
{
Session["info"] = user;
Response.Redirect("~/Main.aspx");
}
}为什么我的数据都传不过来啊,验证都不管用的,还有我的Model是有2个构造方法的,这里的Session如果保存了能不能把实体类里的所有字段都保存了呢?
{
user = new UserInfo(rdr.GetString(0), rdr.GetString(1));
return user;
}
return null;
rdr.Close();
}换个位置。。
要么你的方法永远都为null
{
using (SqlDataReader rdr = SQLHelper.ExecuteReader(CommandType.Text,
SQL_SELECT_USERINFO_U_P,
new SqlParameter("@AuthorName",user.AuthorName),
new SqlParameter("@PassWord",user.PassWord)))
{
if (rdr.Read())
{
user = new UserInfo(rdr.GetString(0), rdr.GetString(1));
return user;
}
rdr.Close();
} return null;
貌似这个方法的返回值永远是null吧?
{
user = new UserInfo(rdr.GetString(0), rdr.GetString(1));
return user;
} else
{
user=new UserInfo();
}
rdr.Close();
} return user;
select * from UserInfo where AuthorName=@AuthorName and PassWord=@PassWord
问题已得到解决 谢谢各位