日期:2014-05-18  浏览次数:20852 次

数据库有一个表,窗体上有2个数据库有一个表,窗体上有2个DataGridView控件都绑定在这个表上。。控件都绑定在这个表上。。
数据库有一个表,窗体上有2个DataGridView控件都绑定在这个表上,点击一下按钮 将第一个DataGridView中的一行数据添加到第二个DataGridView中,代码如下,
if (dgvData.Rows.Count > 0)
  {  
  DataTable table = (DataTable)dgvDatatoo.DataSource;
  DataRow row1= table.NewRow();
  table.Rows.Add(row1);
  row1.AcceptChanges();
  table.AcceptChanges();
   
  for (int i = 0; i <table.Rows.Count; i++)
  { 
  int index = dgvDatatoo.Rows.Add();
  if (dgvData.CurrentRow.Cells[i].Value != null)
  {
  dgvDatatoo.Rows[index].Cells[i].Value = dgvData.CurrentRow.Cells[i].Value.ToString();
  }
  else
  {
  dgvDatatoo.Rows[index].Cells[i].Value = "";
  }
  }
  }
错误提示如下:当控件被数据绑定时,无法以编程方式向DataGridView的行集合中添加列。
求解决

------解决方案--------------------
绑定数据集后,不能通过dgvDatatoo.Rows.Add();来增加行,你可以在datatable中增加,然后将datatable绑定到grid,或者要添加row的gird就别绑定数据集,手动添加Row
------解决方案--------------------
既然你绑定的 DataTable ,这样就可以了
C# code
if (dgvData.Rows.Count > 0)
{
    DataTable table = (DataTable)dgvDatatoo.DataSource;
    DataRow row1 = table.NewRow();
    for (int i = 0; i < table.Columns.Count; i++)
    {
        row1[i] = dgvData.CurrentRow.Cells[i].Value;
    }
    table.Rows.Add(row1);
}