2015-05-28 4 views
2

Я новичок в этом, и я немного потерялся. Попытка показать значения моей базы данных в текстовом поле, выбрав в поле со списком. Но я не могу. Пожалуйста, помогите мне. Это мой код:Как показать выбранное значение combobox в текстовом поле 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» таблицы alumno.

Любые идеи, как я могу это сделать?

+0

Первый переход 'con.Close();' to '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

Я сделал это и в моем трех текстовом поле показал мне только значение nombretxtbox: частная пустота cbalumno_SelectedIndexChanged (объект отправителя, EventArgs е) { nombretextBox.Text = cbalumno.Text; apellidotextBox.Text = cbalumno.Text; citextBox.Text = cbalumno.Text; } – Lore

+0

Возможно, это связано с тем, что у двух других comboBoxes нет выбранного элемента. Попробуйте выбрать текст на них два, а затем третий, а затем проверить. –

1

Вы можете использовать DataRowView, чтобы связать запись с текущим SelectedItem. Свойство объекта DataRowView даст вам строку данных. Используя эту строку, вы можете привязать столбцы к ней.

private void cbalumno_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DataRowView vrow = (DataRowView)cbalumno.SelectedItem; 
    string sValue = vrow.Row["Name"].ToString(); 
} 
Смежные вопросы