用多个字段填充组合框

时间:2014-04-02 09:14:00

标签: c# winforms sqlite listbox

我有这段代码:

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。这里有一些类似的例子,但它们都不适合

1 个答案:

答案 0 :(得分:0)

您可以使用sql查询来解决它。

 select (' '+FisrtName + LastName)
  from student_groups
  for xml path('')
  where UserName='/*Some thing in here*/'

因此,您将拥有一个包含FirstName LastName

等列的表