根据组合框选择更改文本框值

Posted

技术标签:

【中文标题】根据组合框选择更改文本框值【英文标题】:change the text box values according to the combo box selection 【发布时间】:2013-05-02 06:08:51 【问题描述】:

我是 C# 新手,我正在尝试将组合框与访问数据库绑定。 我用列名绑定了组合框,但我无法根据组合框的选择在文本框中显示详细信息(列)的值。

在我的数据库中有一个包含 3 列的表 1.id 2.网站名称 3.详情 和 这是我的代码

 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();
        

    

【问题讨论】:

什么文本框?似乎您想要实现 SelectedIndexChanged 事件,您将在其中获得组合框的选定项目的索引并且可以使用它。一个例子是确定details 并将一些textBox.Text 设置为该值。 【参考方案1】:

设置

this.comboBox1.ValueMember = "Details";

那么你可以得到detailsthis.comboBox1.SelectedValue

【讨论】:

【参考方案2】:

或者你可以做这样的事情

private void MyCombobox_SelectedIndexChanged(object sender, EventArgs e)


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

我猜这就是你要找的东西

【讨论】:

我希望根据组合框值的选择从数据库中获取文本框值。 你的意思是当用户点击你的组合框中的一个网站(比如说它的 www.abc.com)然后它的相应细节应该显示在你的文本框中..这是你想要的吗?如果是,那么上面提到的代码做同样的事情【参考方案3】:

如我所见,您可能将表格存储为 ComboBox 的项目。在这种情况下,如果您想查看每列的列和内容(行详细信息),您可以在事件处理程序中尝试:

    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);

    

【讨论】:

以上是关于根据组合框选择更改文本框值的主要内容,如果未能解决你的问题,请参考以下文章

在访问中更改组合框值时,可以更改/重新计算计算的文本框值

使用组合框更改值单位时如何更新/转换数字文本框值?基于当前单位的值标准化?

单击组合框值时 DataGridView 列标题更改

使用组合框值更改时的新存储值更新/刷新 dojo 数据网格

从文本框值查看组合框值 Microsoft Access 2007

Datagridview_2 组合框值在 C# 中无效