使用查询我已将数据库中的两列值调用为一列。现在我要选择一个值形式的组合框并将一个列值放入文本框中。
e.g
从数据库到下面的组合框的两个列值
10001 haider< ------当我选择这个索引时我只想在文本框中查看haider
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();
}
答案 0 :(得分:1)
您应该分别将值和文本添加到组合框中。 这是一个例子ComboBox: Adding Text and Value to an Item (no Binding Source)。
如果你必须在文本中显示id,你必须在将所选文本放入文本框之前进行一些解析。
答案 1 :(得分:0)
如果您能够在选择更改时获得组合框的2值文本,则可以使用空格(“”)字符将其拆分,并将第二个字符串放入文本框中。
例如
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string[] splitedStr = comboBox1.SelectedText.Split(' ');
textBox1.Text = splitedStr[1];
}
答案 2 :(得分:0)
使用组合框的ComboBox.SelectedIndexChanged事件相应地填充文本框。使用http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedindexchanged(v=vs.110).aspx
答案 3 :(得分: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();
}