我有这段代码:
private void comboBox2_TextChanged(object sender, EventArgs e)
{
if (this.OpenConnection())
{
string query = "select username,group_id from students_groups where group_id ="+comboBox2.SelectedValue.ToString()+";";
SQLiteCommand command = new SQLiteCommand(query, myConn);
DbDataReader reader = command.ExecuteReader();
ArrayList stud = new ArrayList();
while (reader.Read())
{
stud.Add(reader["username"].ToString());
}
DataSet ds = new DataSet();
for (int i = 0; i < stud.Count; i++) {
query = "select * from students_info where username='"+stud[i].ToString()+"';";
SQLiteDataAdapter da = new SQLiteDataAdapter(query, myConn);
da.Fill(ds, "sg");
listBox1.DisplayMember = "firstname";
listBox1.ValueMember = "username";
listBox1.DataSource = ds.Tables["sg"];
}
this.CloseConnection();
}
}
它有效,但我需要用两列中的值填充组合框:“firstname”和“lastname”。
所以这一行:
listBox1.DisplayMember = "firstname";
需要以某种方式改变。
有些方法是可能的,但在这种情况下,我失去了列表框中的ValueMember,我也需要保留。
如何在列表框中插入两个列值而不丢失ValueMember?
P.S。这里有一些类似的例子,但它们都不适合
答案 0 :(得分:0)
您可以使用sql查询来解决它。
select (' '+FisrtName + LastName)
from student_groups
for xml path('')
where UserName='/*Some thing in here*/'
因此,您将拥有一个包含FirstName LastName
等列的表