日期:2014-05-19  浏览次数:20780 次

为什么我把dataGridView中的cell与对应的表中的值邦定后报参数超出范围异常?
代码如下:
  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];可以显示但就会在原有的列后面自动加表中的列,这是什么原因呢?要怎么解决呀?

------解决方案--------------------
dataGridView1.AutoGenerateColumns = false;
------解决方案--------------------
this.dataGridView1.AutoGenerateColumns = false;
this.dataGridView1.DataSource = userDs.Tables[0].DefaultView;
------解决方案--------------------
---------------------------------------
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时索引超出范围,就会报错了