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

请教DATAGRIDVIEW问题一个,经常出现的 错误

如题,
怎么错位了呢?
有没有大侠现身指点一二!!!!

void RefreshData()
        {
            string sqlStr;
            //DataSet ds = new DataSet();
            sqlStr = "select * from ZDML";
            ds = sql.GetDataFromDB(sqlStr);
            if (ds != null)
            {
                dataGridView1.DataSource = ds.Tables[0];
                dataGridView1.Columns[0].HeaderText = "诊断编码";
                dataGridView1.Columns[0].Width = 85;
                dataGridView1.Columns[1].HeaderText = "诊断名称";
                dataGridView1.Columns[1].Width = 100;
                dataGridView1.Columns[2].HeaderText = "诊断类别";
                dataGridView1.Columns[2].Width = 100;
                dataGridView1.Columns[3].HeaderText = "诊断分类";
                dataGridView1.Columns[3].Width = 100;
                dataGridView1.Columns[4].HeaderText = "诊断类型";
                dataGridView1.Columns[4].Width = 85;
                dataGridView1.Columns[5].HeaderText = "诊断临床表现";
                dataGridView1.Columns[5].Width = 100;

            }
            else
            {
                dataGridView1.DataSource = null;
            }
        }

        //全部显示
        private void button5_Click(object sender, EventArgs e)
        {
            try
            {
                RefreshData();
            }
            catch (Exception ex)
            {
                sql.cn.Close();
                MessageBox.Show(ex.Message);
            }
        }
这是我写的部分代码 --------------------编程问答-------------------- 按这样写不会有问题,除非你在前台把datagridview的columns属性的每一列都设了,这样就会出现你说的情况。。。 --------------------编程问答-------------------- dataGridView1.Columns[0].HeaderText = "诊断编码";
  dataGridView1.Columns[0].Width = 85;
  dataGridView1.Columns[1].HeaderText = "诊断名称";
  dataGridView1.Columns[1].Width = 100;
  dataGridView1.Columns[2].HeaderText = "诊断类别";
  dataGridView1.Columns[2].Width = 100;
  dataGridView1.Columns[3].HeaderText = "诊断分类";
  dataGridView1.Columns[3].Width = 100;
  dataGridView1.Columns[4].HeaderText = "诊断类型";
  dataGridView1.Columns[4].Width = 85;
  dataGridView1.Columns[5].HeaderText = "诊断临床表现";
  dataGridView1.Columns[5].Width = 100;

换成 dataGridView1.Columns["ICDNO"].HeaderText ="诊断编码";  这样就成了 --------------------编程问答--------------------
引用楼主  的回复:
如题,
怎么错位了呢?
有没有大侠现身指点一二!!!!

void RefreshData()
        {
            string sqlStr;
            //DataSet ds = new DataSet();
            sqlStr = "select * from ZDML";
            ds = sql.……

控制显示的样式啊,比如width,height,Cloumn的Style --------------------编程问答-------------------- 你既然用的是自动创建数据列的方式,就不要手动添加那些列,如果你要手动添加那些列,就不要自动创建列了。
手动添加的方式:
先将AutoGenerateColumns 属性设置为false。
再添加数据列,注意设置DataPropertyName为数据库对应列名。 --------------------编程问答-------------------- 在DataSource之前设置下列宽自动调整就行了
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dataGridView1.DataSource =...
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,