2013-07-01 74 views
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); 
} 

我想要的是在下拉列表中選擇一個值時,顯示在訂單表中的其他字段。

+3

你有沒有嘗試過任何東西呢?這看起來像來自任務的複製和粘貼問題? – tymeJV

+1

這聽起來像一個要求,而不是一個問題:) – mckeejm

+0

使用數據庫我已經填充從數據庫的值到下拉列表..我想要知道的是顯示在標籤 – user2540165

回答

0

您可以從SQL查詢結果中創建數據表,然後將項添加到ID列的dropdownlist中。當您從DDL中選擇一個項目時,顯示數據表中的行與選定的orderID匹配的信息。

我可以編寫代碼,如果你想不清楚我的意思。

UPDATE:用代碼

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.... 
     } 
    } 
} 
+0

您可以爲其編寫代碼 – user2540165

+0

'object'不包含'toString'的定義並且沒有擴展方法'toString '接受'對象'類型的第一個參數可以找到(你是否缺少使用指令或程序集引用?)\t ...如何刪除此錯誤 – user2540165

+0

幾乎所有的東西都可以使用toString()方法。你能看到什麼東西得到消息嗎?我認爲visual studio給你一個codeline refrence。 –

0

當你標記與ASP.Net你的問題,我認爲這是一個ASP.Net Web表單應用程序的一部分。這意味着下拉列表將位於瀏覽器中的網頁內。我不清楚您是希望標籤在用戶選擇該項目時立即顯示,還是僅在發佈到服務器後才顯示。 在第一種情況下,您需要使用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()); 
     } 
    } 
+0

Label1.Text = String.Format(「員工ID:{0},訂單日期:{1},運費:{2},裝運名稱:{3}和國家/地區{4}。」),reader [「employeeId 「).ToString(),reader [」orderDate「]。ToString(),reader [」freight「]。ToString(),reader [」shippedName「]。ToString(),reader [」country「]。ToString ); – user2540165

+1

我在我的SelectedIndex_Changed事件中粘貼了這段代碼,但是我在這條線上面臨着某種錯誤......就像讀者開始之前一樣;預計 – user2540165

+0

@ user2540165代碼中有一些錯字。我把它粘貼到VS.Net,現在它應該編譯好。 –