从组合框中的数据表中显示两列

时间:2016-08-20 09:26:47

标签: c# database winforms combobox datatable

  

我想连接表中的名字和姓氏" person"进入combobox1。   任何解决方案!

   public MyForm()
        {
        InitializeComponent();
        combobox1_load();
        }

   public void combobox1_load()
    {
        da = new SqlDataAdapter("select * from PERSONNE ", cn);
        dt = new DataTable();
        try
        {
            cn.Open();
            da.Fill(dt);
            comboBox1.DataSource = dt;
            comboBox1.DisplayMember = "NOM_PERSONNE , PRENOM_PERSONNE";
           // comboBox1.ValueMember = "ID_PERSONNE";
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

        finally
        {
            cn.Close();
        }


    }

我试图像这样改变sqldataadapter - > da = new SqlDataAdapter(""从PERSONNE",cn)选择concat(NOM_PERSONNE,'',PRENOM_PERSONNE); .. 但它也不起作用!!

3 个答案:

答案 0 :(得分:2)

SQL查询应该是这样的:"选择concat(NOM_PERSONNE,'',PRENOM_PERSONNE)作为PERSONNE的PERSONNEName 显示成员应该是: comboBox1.DisplayMember =" PERSONNEName";

答案 1 :(得分:1)

已决定!!

   public void combobox1_load()
    {
        da = new SqlDataAdapter("select concat(NOM_PERSONNE,' ',PRENOM_PERSONNE) as 'nom_prenom' from PERSONNE ", cn);
        dt = new DataTable();
        try
        {
            cn.Open();
            da.Fill(dt);
            comboBox1.DataSource = dt;
            comboBox1.DisplayMember = "nom_prenom";
          //   comboBox1.ValueMember = "ID_PERSONNE";
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

        finally
        {
            cn.Close();
        }


    }

答案 2 :(得分:0)

试试这个

da = new SqlDataAdapter("select NOM_PERSONNE,PRENOM_PERSONNE from PERSONNE ", cn);

而不是

da = new SqlDataAdapter("select * from PERSONNE ", cn);

comboBox1.DisplayMember = "NOM_PERSONNE" + "PRENOM_PERSONNE";

insted of

comboBox1.DisplayMember = "nom_prenom";