我的datagridview设计为录入一行数据后自动生成下一行,然后继续录入,全部录入完毕后插入到数据库中,但是当我录入最后一条记录时也会自动增加下一行,可那行已经没有用了,请问大家这种情况应该怎么处理下比较好呢?
我用的是下面的方法增加一行
int index = this.dataOutGridView.Rows.Add();
newrow = dataOutGridView.Rows[index];
newrow.Cells[0].Value = dataOutGridView.Rows.Count; 

解决方案 »

  1.   

    datagridview的自动增加行设为false
      

  2.   

    默认就是可以自动增一行,为什么要自己写?
    如果非要自己写的话,要增加一句:
    if (dataOutGridView.IsCurrentCellDirty)
       dataOutGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
      

  3.   

        不是用的datagridview自带的增加一行,问题是不确定哪条记录为最后一条,现在只要输入一条就自动增加一行。如果录入的是最后一条的话,那么自动增加的那行就不用继续往里面添加数据了,所以提交遍历datagridview时他是多余的。
      

  4.   

     public void BinddataGridViewTextBox()
            {            for (int i = 0; i < dgvGdetails.Rows.Count; i++)
                {
                    dgvGdetails["serialId", i].Value = string.Format("{0:D3}", i + 1).PadLeft(3, '0');            }        } private void button1_Click(object sender, EventArgs e)
            {
                
                if (dgvGdetails.Columns[this.dgvGdetails.CurrentCell.ColumnIndex].Name == "re" && this.dgvGdetails.CurrentCell.RowIndex == dgvGdetails.Rows.Count - 1)
                {                DataGridViewRow row = new DataGridViewRow();
                    dgvGdetails.Rows.Add(row);
                    BinddataGridViewTextBox();            }
            }
      

  5.   

           /// <summary>
            /// 实例化新行
            /// </summary>
            private void gv_FeeItem_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
            {
                GridView view = sender as GridView;
                view.SetRowCellValue(e.RowHandle, this.列名, 默认值);
            }
    觉得直接使用实例化新行的方法就行,没必要使用代码构造,这样也可以设置默认值。可以通过设计编辑器设置新行的初始位置,只要输入一行完毕,多余的实例化行不会保存到数据库。