当前位置:编程学习 > C#/ASP.NET >>

DataGridViewComboBoxColumn列为空

本人想将数据库里的表SAC_HB通过winform的datagridview显示出来。这个表里有一列SHANCHUBIAOZHI,该列类型为int,值范围是0(normal)或1(deleted )。值范围是0对应normal,1对应deleted存在数据表T_isDeleted中。运行该程序显示SHANCHUBIAOZHI为空,在数据库的SAC_HB表的SHANCHUBIAOZHI列是有值的,全为0;请问各位高手如何在SHANCHUBIAOZHI(DataGridViewComboBoxColumn )的列中显示值deleted 和normal?


private void Form2_Load(object sender, EventArgs e)
        {
            try
            {    dataGridView1.AllowUserToAddRows = false;
                dataGridView1.AutoGenerateColumns = false;

                using (SqlConnection sqlconn = new SqlConnection("Data Source = .\\SQLEXPRESS;Initial Catalog = AA;User Id = AA;Password = AA;"))
                {
                    string sql1 = "select * from dbo.SAC_HB";
                    string sql2 = "select ColValue,ColName from dbo.T_isDeleted";

                    DataGridViewComboBoxColumn dgvComboBoxColumn = dataGridView1.Columns[20] as DataGridViewComboBoxColumn;
                    dgvComboBoxColumn.DataPropertyName = "ColValue";
                    dgvComboBoxColumn.DataSource = GetTable(sql2).DefaultView;//必须在设置dataGridView1的DataSource的属性前设置
                    
                    dgvComboBoxColumn.DisplayMember = "ColName";
                    dgvComboBoxColumn.ValueMember = "ColValue";

                    dataGridView1.DataSource = GetTable(sql1).DefaultView;//一定要在dgvComboBoxColumn的DataSource后设置
                }
            }
            catch
            { }

        }



dataGridView ComboBoxColumn ; 数据库 --------------------编程问答-------------------- 运行效果:



--------------------编程问答-------------------- 另外一个函数:

private DataTable GetTable(string sql)
        {
            using (SqlConnection sqlconn = new SqlConnection("Data Source = .\\SQLEXPRESS;Initial Catalog = AA;User Id = AA;Password = AA;"))
            {
                DataTable dt = new DataTable();
                SqlDataAdapter sqlda = new SqlDataAdapter(sql, sqlconn);
                sqlda.Fill(dt);
                return dt;
            }
        } --------------------编程问答--------------------   dataGridView1.DataBind();写了吗? --------------------编程问答--------------------
引用 3 楼 a01589 的回复:
  dataGridView1.DataBind();写了吗?



楼上的,vs2008就没有DataBind这个函数~ --------------------编程问答--------------------
引用 4 楼 u011575779 的回复:
Quote: 引用 3 楼 a01589 的回复:

  dataGridView1.DataBind();写了吗?



楼上的,vs2008就没有DataBind这个函数~

看错了,以为你的那是B/S的,WinForm确实是没有 --------------------编程问答--------------------
引用 5 楼 a01589 的回复:
Quote: 引用 4 楼 u011575779 的回复:

Quote: 引用 3 楼 a01589 的回复:

  dataGridView1.DataBind();写了吗?



楼上的,vs2008就没有DataBind这个函数~

看错了,以为你的那是B/S的,WinForm确实是没有



还是谢谢你~ --------------------编程问答-------------------- 在dgv的cellformatting事件里写
判断如果是0 e.value = '你想显示的值'
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,