Gridview绑定详细信息

时间:2012-07-10 08:26:38

标签: asp.net sql c#-4.0

我有一个绑定到数据库的组合框,当我从组合框中选择一个订单时,它必须在单独的网格视图上显示订单详细信息和客户详细信息。我实现了这一点,现在我希望在选择ALL时该组合框中有一个“全部”选项,它会显示数据库中的所有订单详细信息和客户详细信息。

注意我得到了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

1 个答案:

答案 0 :(得分: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中,以便您可以在需要时分页GridViews)。

您也可以复制此过程以获取CustomerDetails。

上面的代码假定您在DropDownList中为ALL项设置了值0。

因此,如果您的DropDownList被称为ddlOrders,请按如下方式调用该过程:

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

与GetCustomers相同。

这些将使用与特定OrderID或所有订单匹配的行填充GridView。

希望这有帮助