2013-05-02 259 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); 

    } 
相关问题