将数据从SQL Server加载到组合框中

时间:2015-11-03 19:39:24

标签: c# sql-server winforms combobox

我尝试将数据从SQL Server(2个表:FamilleCompte)中获取到Form_Load()中的2个组合框中。

但是当您看到结果时,它可以与第一个组合框一起使用,但第二个组合显示System.Data.SqlClient.SqlDataReader

enter image description here

这是代码

private void Tresorerie_Load(object sender, EventArgs e)
{
        conn = new SqlConnection(connstring);
        conn.Open();
        String queryCompte = "select NomCom from Compte";
        String queryFamille = "select NomFam from Famille";
        commCompte = new SqlCommand(queryCompte, conn);
        commFamille = new SqlCommand(queryFamille, conn);

        try
        {
            //Compte
            commCompte.CommandType = CommandType.Text;
            dreaderCompte = commCompte.ExecuteReader();

            while (dreaderCompte.Read())
            {
                queryCompte = dreaderCompte[0].ToString();
                TreComBoxCompte.Items.Add(queryCompte);
            }
        }
        catch (Exception)
        {
            MessageBox.Show("Problem with load Compte");
        }
        finally
        {
            dreaderCompte.Close();
        }

        try
        {
            //Famille
            commFamille.CommandType = CommandType.Text;
            dreaderFamille = commFamille.ExecuteReader();

            while (dreaderFamille.Read())
            {
                queryFamille = dreaderFamille[0].ToString();
                TreComBoxFamille.Items.Add(dreaderFamille);
            }
        }
        catch (Exception)
        {
            MessageBox.Show("Problem with load Famille");
        }
        finally
        {
            dreaderFamille.Close();
        }
        conn.Close();
    }

3 个答案:

答案 0 :(得分:5)

对于第二个组合框,您要添加datareader dreaderFamille

TreComBoxFamille.Items.Add(dreaderFamille);

虽然您应该添加 queryFamille

queryFamille = dreaderFamille[0].ToString();
TreComBoxFamille.Items.Add(queryFamille);

如果您注意ComboBox中的项目文本,您会猜到问题,当您查看代码时,您会看到您的猜测是真的。

答案 1 :(得分:0)

对于第二个comboxbox,您使用了错误的对象来添加

TreComBoxFamille.Items.Add(queryFamille);

答案 2 :(得分:0)

你应该这样做:

while (dreaderFamille.Read())
{
    queryFamille = dreaderFamille[0].ToString();
    TreComBoxFamille.Items.Add(queryFamille);
}