2014-03-30 67 views
0

我試圖使用GridView和查詢字符串pageLoad的,查詢字符串和GridView - 獲取客戶訂單

當用戶登錄時從具體到每一個客戶我的訂單數據庫表中檢索訂單信息,我想他們看到所有他們的訂單。我有使用的「客戶ID」

C#

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:FoodDealsConnectionString %>" SelectCommand="SELECT [customerid], [orderid], [menuname], [menuprice] FROM [Order] WHERE ([customerid] = @customerid)"> 
    <SelectParameters> 
     <asp:QueryStringParameter Name="customerid" QueryStringField="customerid" Type="Int32" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

頁面加載

protected void Page_Load(object sender, EventArgs e) 
{ 
    SqlDataSource1.SelectCommand = "SELECT [orderid], [orderdate], [menuname], [menuprice], [quantity], [isdelivered] FROM [order] WHERE ([customerid] = " + Request.QueryString["customerid"];    
} 

當我嘗試這個查詢字符串綁定到一個GridView的順序表,沒有出現。 Gridview不顯示,但當我把 ?customerid = 5在頁面鏈接末尾,它完美顯示

+0

右括號)未放入您的頁面加載查詢 – ray

+1

請不要像這樣使用內聯SQL。 http://technet.microsoft.com/en-us/library/ms161953(v=sql.105).aspx –

+0

@ray我已關閉括號,它仍然不會顯示。我也嘗試徹底刪除括號 - 同樣的問題。我只是學習asp.net,並不知道如何達到所需的結果。 – user3477698

回答

0

在頁面加載事件中檢查customerid是否爲空。

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
     if (Request.QueryString["customerid"] != null) 
     { 
     SqlDataSource1.SelectCommand = "SELECT [orderid], [orderdate], [menuname], [menuprice], [quantity], [isdelivered] FROM [order] WHERE [customerid] = " + Request.QueryString["customerid"].ToString(); 
     } 
     } 
    } 

然後你的網格視圖應該如下圖所示。

<asp:GridView ID="gvL" DataSourceID="SqlDataSource1" runat="server" AutoGenerateColumns="False"/> 
+0

這對我有效。 customerid在pageload事件中是空的,我修復了它。謝謝 – user3477698

+0

@ user3477698,歡迎您。很高興幫助你。 – RGS