2013-05-02 514 views
1

我是C#中的新手,在這裏我試圖將組合框與訪問數據庫綁定。 我使用列名綁定了組合框,但是我無法根據組合框的選擇在文本框中顯示詳細信息的值(列)。根據組合框的選擇更改文本框的值

在我的數據庫

有包含3 coloumn 1.id 2.wesitename 3.Details 和 表,這是我的代碼

private void button1_Click_1(object sender, EventArgs e) 
     { 
string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\nazarmak\\Documents\\newwebsite.accdb;Persist Security Info=True"; 

     OleDbConnection con = new OleDbConnection(ConnectionString); 
     OleDbCommand cmd = new OleDbCommand("select websitename, Details from newweb", con); 
     OleDbDataAdapter da = new OleDbDataAdapter(); 

     DataTable dt = new DataTable(); 

     try 
     { 
      con.Open(); 
      da.SelectCommand = cmd; 
      da.Fill(dt); 


      this.comboBox1.DisplayMember = "websitename"; 
      this.comboBox1.ValueMember = "websitename"; 
      this.comboBox1.DataSource = dt; 



     } 
     catch (System.Exception ex) 
     { 
      MessageBox.Show(ex.Message); 


     } 
     finally 
     { 

      con.Close(); 
     } 

    } 
+0

什麼是textBox?看起來你想要實現'SelectedIndexChanged'事件,在這個事件中,你將得到comboBox的選定項的索引,並且可以使用它。一個例子是確定「細節」並將一些「textBox.Text」設置爲該值。 – Corak 2013-05-02 06:21:16

回答

0

設置

this.comboBox1.ValueMember = "Details"; 

那麼你可以得到details作爲this.comboBox1.SelectedValue

0

或者,也許你可以做這樣的事情

private void MyCombobox_SelectedIndexChanged(object sender, EventArgs e) 

{ 
MyTextbox.text=dt.Rows[MyCombobox.SelectedValue]["details"].ToString(); 
} 

我想這是你在找什麼

+0

我想從數據庫中選擇組合框值的文本框值。 – Nazar 2013-05-02 07:00:01

+0

你的意思是,當一個用戶點擊組合框中的一個網站時(比如說www.abc.com),那麼它的相應細節應該顯示在你的文本框中..你想要什麼?如果是,那麼上面提到的代碼也會做同樣的事情 – Rohit 2013-05-02 07:13:21

0

依我之見,你可能會存儲表作爲組合框的項目。在這種情況下,如果您想查看每列的列和內容(行詳細信息),可以在事件處理函數中嘗試以下內容:

DataColumnCollection columns = dt.Columns; 
    DataRowCollection rows = dt.Rows; 

    foreach (DataColumn column in columns) 
    { 
     textBox1.AppendText(column.ColumnName + ": "); 

     foreach (DataRow row in rows) 
     { 
      //display the cell value 
      textBox1.AppendText(row[column.ColumnName].ToString()); 
     } 

     textBox1.AppendText(Environment.NewLine); 

    } 
相關問題