0

当用户选择一个订单 ID 时,订单信息的其余部分将显示在标签中。显示以下内容:员工 ID、订单日期、运费、发货名称和国家/地区。此功能应以编程方式使用直接数据访问来实现。

编辑:代码示例和附加说明。

String CS = onfigurationManager.ConnectionStrings["NORTHWNDConnectionString"].ConnectionStr‌​ing; 
using (SqlConnection con = new SqlConnection(CS)) 
{ 
    SqlCommand cmd = new SqlCommand("SELECT OrderID FROM Orders", con);
    con.Open();
    DropDownList1.DataSource = cmd.ExecuteReader();
    DropDownList1.DataTextField = "OrderID";
    DropDownList1.DataValueField = "OrderID";
    DropDownList1.DataBind();
    Label1.Text = Convert.ToString(DropDownList1.SelectedItem.Text); 
} 

我想要的是当在下拉列表中选择一个值时显示订单表中的其他字段。

4

2 回答 2

0

您可以从 SQL 查询结果中创建数据表,然后从 ID 列将项目添加到下拉列表中。然后,当您从 DDL 中选择一个项目时,您会显示数据表中的行与所选 orderID 匹配的信息。

如果你想要它没有清除我的意思,我可以编写代码。

更新:带代码

var ds = new DataSet();

using (var conn = new SqlConnection(connection))
{
    conn.Open();
    var command = new SqlCommand("Your SQL Query", conn);
    var adapter = new SqlDataAdapter(command);
    adapter.Fill(ds);
    conn.Close();
 } //Now you have a dataset, with one table that matches your query result.

//And now we can use a foreach loop to add every OrderID to dropdownlis

 foreach (DataTable table in ds.Tables)
 {
     foreach (DataRow dr in table.Rows)
     {
         DDLname.Items.Add(dr[0].ToString());
     }
 }

//onSelectedValue event
string orderID = DDLname.Text.toString();
Label1.Text = orderID;
foreach (DataTable table in ds.Tables)
{
    foreach (DataRow dr in table.Rows)
    {
        if(dr[0].toString().equals(orderID))
        {
            Label2.text = dr[1].toString();
            Label3.text = dr[2].toString();
            etc....
        }
    }
}
于 2013-07-01T19:37:54.757 回答
0

当您使用 ASP.Net 标记您的问题时,我假设这是 ASP.Net Webforms 应用程序的一部分。这意味着下拉列表将位于浏览器的网页内。我不清楚您是否希望在用户选择项目时立即显示标签,或者仅在发布到服务器后显示。在第一种情况下,您将需要 javascript,并且可能需要 Ajax 或 JSON 之类的东西来获取要为所选项目显示的数据。在第二种情况下,您可以为下拉列表的 SelectedIndex_Changed 事件添加事件处理程序。这个处理程序应该做这样的事情:

    string CS = ConfigurationManager.ConnectionStrings["NORTHWNDConnectionString"].ConnectionString;
    using (SqlConnection con = new SqlConnection(CS))
    {
        SqlCommand cmd = new SqlCommand("SELECT OrderID FROM Orders WHERE OrderId = @OrderId", con);
        cmd.Parameters.AddWithValue("@OrderId", DropDownList1.SelectedItem.Value);
        con.Open();
        if (reader.Read())
        {
            SqlDataReader reader = cmd.ExecuteReader();
            Label1.Text = String.Format("Employee ID: {0}, order date: {1}, freight: {2}, shipped name: {3}, and country {4}."
                , reader["employeeid"].ToString()
                , reader["orderdate"].ToString()
                , reader["freight"].ToString()
                , reader["shipname"].ToString()
                , reader["shipcountry"].ToString());
        }
    }
于 2013-07-01T19:41:50.403 回答