2015-05-28 106 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(); 
} 
相關問題