在ComboBox中显示不同行的记录

时间:2016-08-06 14:56:39

标签: c# winforms

我想在ComboBox中显示所有记录,但记录显示在一行上。这是我的代码。我创建了2个类,从中检索数据。

数据处理程序代码:

public DataSet DataLoader(string _strQuery)
{
    DataSet ds = new DataSet();
    ds.Clear();

    using (conn = new SqlConnection())
    {
        conn = Connection.getconnection();
        oda = new SqlDataAdapter(_strQuery, conn);
        oda.Fill(ds, "Temp");
        conn.Close();
        conn.Dispose();
        oda.Dispose();
    }

    return ds;
}

数据类代码:

public System.String Loadbranch()
{
    string BranchName = "";
    string strquery = "select * from Expense";
    DataHandler dh = new DataHandler();
    System.Data.DataSet dsLoadData = new System.Data.DataSet();
    dsLoadData = dh.DataLoader(strquery);

    if (dsLoadData.Tables["Temp"].Rows.Count > 0)
    {
        for (int i = 0; i < dsLoadData.Tables["Temp"].Rows.Count; i++)
        {
            BranchName += dsLoadData.Tables["Temp"].Rows[i]["ExpenseID"].ToString();
        }
    }

    return BranchName;
}

数据显示的主要表格:

private void Edit_User_Load(object sender, EventArgs e)
{
    this.WindowState = FormWindowState.Maximized;
    this.MinimumSize = this.Size;
    this.MaximumSize = this.Size;

    cbsaveuserid.Items.Add(d.Loadbranch());
}

请帮我显示ComboBox中的所有记录,但不同的行。

1 个答案:

答案 0 :(得分:1)

Items表示对象的集合

修改LoadBranch()方法以返回字符串集合(例如List<string>),而不是一个连接字符串。

修改Edit_User_Load()以循环整个集合,并将每个元素添加到cvsaveuserid.Items集合。

我没有你的代码,所以我无法编译它,但我认为这样可行:

    public List<string> Loadbranches()
    {
        List<string> branchNames = new List<string>();
        string strquery = "select * from Expense";
        DataHandler dh = new DataHandler();
        System.Data.DataSet dsLoadData = new System.Data.DataSet();
        dsLoadData = dh.DataLoader(strquery);

        if (dsLoadData.Tables["Temp"].Rows.Count > 0)
        {
            for (int i = 0; i < dsLoadData.Tables["Temp"].Rows.Count; i++)
            {
                branchNames.Add(dsLoadData.Tables["Temp"].Rows[i]["ExpenseID"].ToString());
            }
        }

        return branchNames;
    }

    private void Edit_User_Load(object sender, EventArgs e)
    {
        this.WindowState = FormWindowState.Maximized;
        this.MinimumSize = this.Size;
        this.MaximumSize = this.Size;

        foreach (string branchName in d.Loadbranches())
        {
            cbsaveuserid.Items.Add(branchName);
        }
    }