用数据集填充组合框

本文关键字:组合 填充 数据集 | 更新日期: 2023-09-27 18:10:33

当我尝试填充组合框

con.Open();
da = new SqlDataAdapter("Mt_Post_select",con);
//Mt_Post is Stored procedure with Select Command
ds1 = new DataSet();
da.Fill(ds1, "Mt_Post");
// The table has only one row
comboBox1.DataSource = ds1.Tables[0];
comboBox1.DisplayMember = "Mt_Post";

它绑定了,但是显示的不是数据,而是System.Data.DataRowView

这个代码出了什么问题,有人告诉我吗

用数据集填充组合框

comboBox1.DisplayMember = "Mt_Post";中的Mt_Post替换为要显示其值的列名

希望下面的示例对您有所帮助;

        DataTable dt = new DataTable();
        dt.Columns.Add("Name");
        dt.Columns.Add("Email");
        dt.AcceptChanges();
        DataRow dr0 = dt.NewRow();
        dr0[0] = "Kadir Sumerkent";
        dr0[1] = "kadir@sumerkent.com";
        DataRow dr1 = dt.NewRow();
        dr1[0] = "Kadir Sumerkent 2";
        dr1[1] = "kadir@sumerkent2.com";
        dt.Rows.Add(dr0);
        dt.Rows.Add(dr1);
        dt.AcceptChanges();
        comboBox1.DisplayMember = "Name";
        comboBox1.ValueMember = "Email";
        comboBox1.DataSource = dt;

让我们试试:

假设您的Stored Procedure像下面的代码:

SELECT 
     Users.User_name AS username
     Users.User_Code AS userID
FROM Users
-- WHERE CONDITONS ARE APPLIED

现在,为了Fetch这个DataSet,你要做如下:


// YOUR OWN CODE
con.Open();
da = new SqlDataAdapter("Mt_Post_select",con);
//Mt_Post is Stored procedure with Select Command
ds1 = new DataSet();
// JUST FILL THE DataSet in THIS WAY
da.Fill(ds1);
// JUST TO MAKE SURE WE HAVE AN EMPTY COMBOBOX
comboBox1.Items.Clear();
comboBox1.DataSource = null;
// NOW POPULATE comboBox1 LIKE THIS
if (ds.Tables[0].Rows.Count  > 0)
{
  comboBox1.DataSource = ds1.Tables[0];
  comboBox1.DisplayMember = "username";
  comboBox1.ValueMember = "userID"
}