2014-02-14 3 views
0

с использованием запроса я назвал два значения столбца из базы данных в один столбец. теперь я хочу выбрать комбобокс формы значения и поместить одно значение столбца в текстовое поле.получение значения combobox в текстовое поле

например

два значения столбцов из базы данных в выпадающем списке ниже

10001 Хайдер < ------ когда я выбираю этот показатель я хочу только Хайдер для просмотра в текстовом поле

10002 Fahad

10003 aitazaz

фрагмент кода, который я использовал для вызова значения двух colums сюда м:

public void account() 
     { 
      con.Open(); 
      cmd.Connection = con; 
      cmd.CommandText = "SELECT acc_no, acc_name FROM accounts_record"; 
      MySqlDataAdapter adpt = new MySqlDataAdapter(cmd); 
      DataSet ds = new DataSet(); 
      adpt.Fill(ds); 

      for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
      { 
       cbacc.Items.Add(ds.Tables[0].Rows[i][0] + " " + ds.Tables[0].Rows[i][1]); 
      } 

      con.Close(); 
     } 
+1

Чтобы избежать поддерживать соединение открытым, я рекомендую перемещение петли для после того, как соединение будет закрыто – TGH

ответ

1

Вы должны добавлять значения и текст в поле со списком отдельно. Вот пример ComboBox: Adding Text and Value to an Item (no Binding Source).

Если вам нужно отобразить идентификатор в тексте, вам нужно выполнить синтаксический анализ перед помещением выделенного текста в текстовое поле.

+0

«10001», приведенный в примере, вероятно, не идентификатор , Если вы проверите оператор select, имя столбца будет «acc_no», что, вероятно, означает номер учетной записи, следовательно, свойство бизнес-объекта – samar

0

Если вы можете получить текст значения 2 в поле со списком при изменении выбора, вы можете разбить его с помощью символа пробела ("") и взять вторую строку и поместить ее в текстовое поле.

Например

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string[] splitedStr = comboBox1.SelectedText.Split(' '); 
     textBox1.Text = splitedStr[1]; 
    } 
+0

, можете ли вы привести пример? –

+0

Пожалуйста, уточните мой обновленный ответ – samar

+0

Если этот ответ был полезен для вас, пожалуйста, отметьте его как ответ и/или увеличьте его. :) – samar

0

Вы должны использовать код, как показано ниже

private void Form1_Load(object sender, EventArgs e) 
    { 
      string conString = "Data Source=\\SQLEXPRESS;Initial Catalog=Test;Integrated     Security=True"; 
      SqlConnection con = new SqlConnection(conString); 
      SqlCommand cmd = new SqlCommand(); 
      con.Open(); 
      cmd.Connection = con; 
      cmd.CommandText = "SELECT acc_no +'-' + acc_name as AccNoWithName , acc_no as ActNo FROM accounts_record"; 
      SqlDataAdapter adpt = new SqlDataAdapter(cmd); 
      DataSet dsn = new DataSet(); 
      adpt.Fill(dsn); 
      con.Close(); 

      comboBox1.DisplayMember = "AccNoWithName"; 
      comboBox1.ValueMember = "ActNo"; 
      comboBox1.DataSource = dsn.Tables[0]; 
    } 


private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
      textBox1.Text = comboBox1.SelectedValue.ToString(); 
} 
+0

Я рад помочь вам, но вы можете сообщить мне, что вы делаете или хотите сделать между кодом, который я вам предоставил выше. –

+0

Я получаю эти данные в текстовом поле и combobox «System.Data.DataViewManagerListItemTypeDescriptor» –

+0

. Основной целью этого является то, что я хочу получить данные из двух полей в поле со списком и когда я нажму элемент из списка со списком, который я хочу получить только acc_name против acc_num @keshavdas –

Смежные вопросы