2016-05-20 74 views
-1

裏面嵌入SQL查詢我有一個問題,即嵌入會話中的SQL查詢。我想用sql查詢加載頁面。如果用戶有超過5個記錄投擲信息。我怎樣才能做到這一點?我的查詢如下。感謝您的回覆。這樣會話asp.net

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

你可以使用這樣一個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(); 
+0

這是建立一個可怕的方式串。如果你的字符串是字面的,那麼就聲明它。即使你在文字上使用'+'運算符,編譯器也會將它組合起來以避免連接。 – Crowcoder

+0

你當然是新手開發人員,因爲每個人都知道使用+運算符爲每個串聯創建一個新的字符串,而StringBuilder不會。 – Gregg

+0

[級聯是附加一個串到另一個串的端部的過程。當通過使用+運算符連接字符串文字或字符串常量時,編譯器會創建一個字符串。沒有運行時串聯發生。](https://msdn.microsoft.com/en-us/library/ms228504.aspx) – Crowcoder