C#with SQL:使用同一个表的不同列填充多个组合框

时间:2017-09-27 14:14:00

标签: c# sql sql-server combobox sqldataadapter

如标题中所述,我将非常感谢使用相同表格的不同列填充组合框的一些帮助

我没有实际的源代码,但是我能用一些像

这样的组合框来填充
myCMB.DataSource = new BindingSource(da, "Column_Name");

但我有5个组合框,我不想为此重复5次相同的代码块。所以我环顾四周找到了一些答案,包括将数据源更改为bindingsource,如下所示:

settings.gradle

但这样做会将组合框填充到指定列的第一项的每个字母(即如果" Column_Name"中的第一项是ABCD,我的组合框选项将是A,B,C ,d)

所以,我尝试寻找更多答案,但我找不到任何答案。有没有一种更有效的方式来填充我的组合框架,还是我真的必须为它们每个重复基本相同的代码行?如果有人可以提供帮助,我们将不胜感激。

2 个答案:

答案 0 :(得分:0)

使用数据表的副本:

SqlDataTable dt = new SqlDataTable();
SqlCommand comm = new SqlCommand(query, conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = comm;
da.Fill(dt);

myCMB.DataSource = dt.Copy();


myCMB.DisplayMember = "display";
myCMB.ValueMember = "value;

答案 1 :(得分:-1)

尝试一下:

DataTable dt = new DataTable();
dt.Columns.Add("Value");
dt.Columns.Add("Display");

string query = @"SELECT ID AS ID, Description AS CODE FROM [Tender] ORDER BY ID";
SqlDataReader sqlReader = new SqlCommand(query, DB.SQLConnection).ExecuteReader();

while (sqlReader.Read())
{
    if (!string.IsNullOrEmpty(sqlReader["CODE"].ToString()))
        dt.Rows.Add(sqlReader["ID"].ToString(), sqlReader["CODE"].ToString());
}

cbPayment1.DisplayMember = "display";
cbPayment1.ValueMember = "value";
cbPayment1.DataSource = dt;