在Session asp.net中嵌入sql查询

时间:2016-05-20 23:50:22

标签: c# sql asp.net session

我有一个问题,就是在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");

1 个答案:

答案 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();