我有一个问题,就是在Session中嵌入sql查询。我想用sql查询加载页面。如果用户有超过5条记录丢失消息。我怎样才能做到这一点?我的查询如下。感谢您的回复。
我的页面加载
protected void Page_Load(object sender, EventArgs e)
{
if(Session["User"] != null)
{
user = Session["User"] as User;
}
else
{
pnlgiris.Visible = false;
ScriptManager.RegisterStartupScript(this, this.GetType(), "redirect",
"alert('Please login first'); window.location='" +
Request.ApplicationPath + "Home.aspx';", true);
}
}
我想在会话中嵌入此查询。
SELECT Users.UserName, COUNT(Book.BookName)
FROM Users
JOIN Book ON Users.UserId = Book.UserId
GROUP BY Users.UserName
HAVING COUNT(*) < 5;
我的用户类
public class User
{
public int UserId { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
}
登录时的用户对象
User u = new User();
u.UserId = Convert.ToInt32(dr["UserId"]);
u.UserName = dr["Name"] != DBNull.Value ? dr["Name"].ToString() : string.Empty;
u.UserName = dr["Surname"] != DBNull.Value ? dr["Surname"].ToString() : string.Empty;
u.UserName = dr["UserName"] != DBNull.Value ? dr["UserName"].ToString() : string.Empty;
u.Email = dr["Email"] != DBNull.Value ? dr["Email"].ToString() : string.Empty;
Session["User"] = u;
Response.Redirect("~/Home.aspx");
答案 0 :(得分:-1)
您可以像这样使用StringBuilder:
var sb = new StringBuilder();
sb.Append("SELECT Users.UserName,");
sb.Append("COUNT(Book.BookName) ";
sb.Append("FROM Users ");
sb.Append("JOIN Book ON Users.UserId = Book.UserId ");
sb.Append("GROUP BY Users.UserName ");
sb.Append("HAVING COUNT(*) < 5;");
Session["SomeSql"] = sb.ToString();