【问题标题】:How can I show the combobox selected value in a text box‎ C#?如何在 C# 文本框中显示组合框选定的值?
【发布时间】:2015-05-28 04:35:14
【问题描述】:

我是新手,有点迷茫。 尝试通过在组合框中进行选择来在文本框中显示我的数据库的值。但我不能。 请帮我。这是我的代码:

    private void CargarDatos()
        {
            string consulta = "SELECT * FROM [dbo].[alumno]";
            DataTable dt = new DataTable();
            SqlConnection con = new SqlConnection(Properties.Settings.Default.conexion);
            SqlCommand cmd = new SqlCommand(consulta, con);
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            try
            {
                con.Open();
                da.Fill(dt);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            con.Close();

            this.dataGridView1.DataSource = dt;

            cbalumno.DataSource = dt;
            cbalumno.DisplayMember="Nombre";
            cbalumno.ValueMember="Id";
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            CargarDatos();
        }

        private void cbalumno_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}

我要显示的参数是表 alumno 的“姓名”“姓氏”和“DNI”。

有什么想法可以做到这一点吗??

【问题讨论】:

  • 如果发生错误,首先将con.Close(); 移动到finally 块以关闭连接。现在实际上您需要多值组合框,它将根据DataTable 显示多个列,您必须为您设计一个,或者您可以使用 DevExpress LookUpEdit

标签: c# .net sql-server combobox ado.net


【解决方案1】:

您可以使用DataRowView 来获取与当前SelectedItem 绑定的记录。 DataRowView 对象的 Row 属性将为您提供数据行。使用这一行,您可以获得绑定到它的列。

private void cbalumno_SelectedIndexChanged(object sender, EventArgs e)
{
     DataRowView vrow = (DataRowView)cbalumno.SelectedItem;
     string sValue = vrow.Row["Name"].ToString();
}

【讨论】:

    【解决方案2】:

    您已经在代码中放置了事件cbalumno_SelectedIndexChanged,现在您必须使用它。

    在该事件中,只需使用该文本框的 Text 属性,并在组合框中分配所选项目的值,如下所示:

    private void cbalumno_SelectedIndexChanged(object sender, EventArgs e)
        {
            yourTextBoxID.Text = comboBoxID.Text;
        }
    

    希望这会有所帮助。

    【讨论】:

    • 我这样做了,在我的三个文本框中只显示了 nombretxtbox 的值: private void cbalumno_SelectedIndexChanged(object sender, EventArgs e) { nombretextBox.Text = cbalumno.Text; apellidotextBox.Text = cbalumno.Text; citextBox.Text = cbalumno.Text; }
    • 这可能是因为其他两个组合框上没有任何选定项。尝试在它们两个上选择一些文本,然后在第三个上选择一些文本,然后检查。
    猜你喜欢
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多