代码如下:
 for (int i = 0; i < userDs.Tables[0].Rows.Count; i++)
                {                    this.dataGridView1.Rows[i].Cells[0].Value = userDs.Tables[0].Rows[i][POS.Common.POSParameters.USER_ID].ToString();
                    this.dataGridView1.Rows[i].Cells[1].Value = userDs.Tables[0].Rows[i][POS.Common.POSParameters.USER_NAME].ToString();
        }
其中=右边的项是有值的,可以取出并显示。
由于我的界面是已经定好的
我用 this.dataGridView1.DataSource = userDs.Tables[0];可以显示但就会在原有的列后面自动加表中的列,这是什么原因呢?要怎么解决呀?

解决方案 »

  1.   

    dataGridView1.AutoGenerateColumns = false;
      

  2.   

    this.dataGridView1.AutoGenerateColumns = false;
    this.dataGridView1.DataSource = userDs.Tables[0].DefaultView;
      

  3.   

    你都用了循环添加cell值了 为什么还要this.dataGridView1.DataSource = userDs.Tables[0];dataGridView1.AutoGenerateColumns = false;这句必须放在dataGridView1放在dataGridView1未绑定之前。
      

  4.   

    this.dataGridView1.Rows[i].Cells[0].Value 
    this.dataGridView1.Rows[i].Cells[1].Value 
    这2个东西,你确定它们存在吗?
      

  5.   

    this.dataGridView1.Rows[i].Cells[0].Value赋值之前先:
    this.dataGridView1.Rows.Add(……)
      

  6.   

    我本来不想用dataSourse的,可是用循环邦定后运行就报错,ArgumentOutOfRangeException
      

  7.   

    ---------------------------------------
    this.dataGridView1.Rows[i].Cells[0].Value 
    this.dataGridView1.Rows[i].Cells[1].Value 
    这2个东西,你确定它们存在吗?-------------------------------------------Rows[i]里的i从0开始算,i的最大值应该是userDs.Tables[0].Rows.Count-1
    当i=userDs.Tables[0].Rows.Count时索引超出范围,就会报错了
      

  8.   

    哦,原来是酱紫啊,楼上的大哥4Q!(比3Q还多1Q!)
      

  9.   

    别谢我,我只是把 S_PLUCK 的意思给解释了一下
      

  10.   

    俄,纠正一下哦,虽然也感谢楼上上的大哥,但实际原因还是S_PLUCK() GG说得对,应该要先new 一个dataGridViewRow然后Add,因为在遍历绑定前还没有咚咚存在,嘻嘻,小汗一下,多谢各位鼎力相助啦!