为什么我把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时索引超出范围,就会报错了