2012-07-10 78 views
0

我得到了一個組合框,我綁定到數據庫,當我從組合框中選擇一個訂單時,它必須在單獨的網格視圖上顯示訂單詳細信息和客戶詳細信息。我實現了這一點,現在我想在選擇ALL時在該組合框中具有「全部」選項,它顯示數據庫中的所有訂單詳細信息和客戶詳細信息。Gridview綁定細節

注意我得到的表是ordersDetailscustomerDetails他們有Orders表的外鍵。我使用外鍵檢索數據,但現在選項ALL沒有外鍵,這就是我面臨的問題。我已經將我的Gridviews綁定到數據源。

我的選擇組合框綁定代碼

SELECT 
    [ID], [orderName], 
FROM 
    Orders 
,根據什麼是從組合框中選擇在GridView控件顯示所選項目

我的GridView的選擇代碼

SELECT 
    CustomerName, CustomerName, 
FROM 
    Orders 
INNER JOIN 
    OrderDetails ON Orders.ID = OrderDetails.OrderRef 
WHERE 
    ID = @.orderRef 
+0

你的問題解決了嗎? – 2012-07-10 10:24:22

回答

0

要選擇所有細節和所有的訂單詳細信息,從數據庫中您需要更改您的查詢

撥打以下功能DropDownList.SelectedIndexChanged

protected void GetOrders(int OrderID = 0) 
{ 
// Connection objects defined here 

// Get the order details 
if (OrderID == 0) { 
    string sql = "SELECT * FROM OrderDetails"; 
} else { 
    string sql = "SELECT * FROM OrderDetails WHERE OrderID = " + OrderID; 
} 

DataSet ds = null; 
SqlDataAdapter da = new default(SqlDataAdapter); 
// check this, it might be a SqlTableAdapter 

da.SelectCommand = new SqlCommand(System.Data.sql, conn); 
da.Fill(ds); 

gvOrderDetails.DataSource = ds; 
gvOrderDetails.DataBind(); 
} 

這只是爲您的一個GridView獲取數據(在DataSet中,因此如果需要的話可以對GridView進行分頁)。

您可以複製此過程以獲取CustomerDetails。

上面的代碼假定您的值爲0,設置爲DropDownList中的ALL項。

所以,如果你的DropDownList被稱爲ddlOrders,調用過程如下:

protected void ddlOrders_SelectedIndexChanged(object sender, System.EventArgs e) 
{ 
GetOrders(ddlOrders.SelectedItem.Value); 
} 

與GetCustomers的一樣。

這些將使用匹配特定OrderID或所有訂單的行填充GridViews。

希望這會有幫助

+0

da.SelectCommand = new SqlCommand(System.Data.sql,conn);說對象引用沒有設置爲一個對象的實例,但我確實有數據庫上的數據,並有一個鏈接 – user1514138 2012-07-10 12:02:58

+0

對不起,將數據適配器聲明爲'new'。我會修改代碼 – Ortund 2012-07-10 14:38:40

+0

感謝它的工作 – user1514138 2012-07-11 14:00:37