我想在combobox1中存储一次表的列数据吗?这是无效的代码:

SqlCommand cmdRe = new SqlCommand("select FK_RoleID from SO_User_Table", cn);
        SqlDataAdapter da = new SqlDataAdapter();
        DataTable dt = new DataTable();
        try
        {
            cn.Open();
            da.SelectCommand = cmdRe;
            da.Fill(dt);
             // textBox1.Text = dt.Rows[0].ItemArray[0].ToString();

          this.comboBox1.DisplayMember= "FK_RoleID";
          this.comboBox1.ValueMember = "FK_RoleID";
          this.comboBox1.DataSource = da;
        }

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

            cn.Close();
        }

最佳答案

您需要绑定到表,而不是适配器:

this.comboBox1.DataSource = dt;


另外-如果使用using,则可以简化一些代码(不需要finally等):

using(SqlCommand cmdRe = {blah}) {
    // {blah}
}


最后一点-随着.NET开发的进行,您可能需要考虑将UI和数据逻辑分开。用相同的方法(甚至是dll)与db-command和ui-control交谈通常是一种代码气味。

关于c# - 在组合框中存储一列数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1778418/

10-13 06:22