2015-05-28 105 views
2

我是新来的,我有点迷路。 试图通过在组合框中选择来显示我的数据库在文本框中的值。但我不能。 请帮帮我。这是我的代码:如何显示文本框C#中的组合框选定值?

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

     } 
    } 
} 

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

任何想法,我该怎么做?

+0

如果发生错误,请先将'con.Close();'移至'finally'块以关闭连接。现在实际上你需要多值组合框,根据'DataTable'显示多个列,你必须为你设计一个,或者你可以使用DevExpress ['LookUpEdit'](https://documentation.devexpress.com/#windowsforms/clsDevExpressXtraEditorsLookUpEdittopic) –

回答

0

您已将事件cbalumno_SelectedIndexChanged置于您的代码中,现在您必须使用它。

里面这种情况下,只需使用Text peroperty该文本框,并指定所选项目的价值在您的组合框是这样的:

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

希望这有助于。

+0

我这样做,在我的三个TextBox给我看了nombretxtbox才值: 私人无效cbalumno_SelectedIndexChanged(对象发件人,EventArgs的){ nombretextBox.Text = cbalumno.Text; apellidotextBox.Text = cbalumno.Text; citextBox.Text = cbalumno.Text; } – Lore

+0

这可能是因为其他两个组合框没有任何选定的项目。尝试在他们两个上选择一些文本,然后在这第三个上,然后检查。 –

1

您可以使用DataRowView获取与当前SelectedItem绑定的记录。 属性DataRowView对象会给你数据排。使用这一行,你可以得到绑定到它的列。

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