我有一个绑定到数据库的组合框,当我从组合框中选择一个订单时,它必须在单独的网格视图上显示订单详细信息和客户详细信息。我实现了这一点,现在我希望在选择ALL时该组合框中有一个“全部”选项,它会显示数据库中的所有订单详细信息和客户详细信息。
注意我得到了ordersDetails
和customerDetails
表,它们具有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 :(得分: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。
希望这有帮助