2011-04-27 77 views
0

我真的用不可思议的方式同步我的数据,从电网到数据库:的DataGridView RowValidation错误

例如:

#region Line methods 
private void LinesView_UserDeletedRow(object sender, DataGridViewRowEventArgs e) 
{ 
    lineTableAdapter.Update(fRIIBDataSet.Line); 
} 

private void LinesView_CellValueChanged(object sender, DataGridViewCellEventArgs e) 
{ 
    lineTableAdapter.Update(fRIIBDataSet.Line); 
} 

private void LinesView_RowValidated(object sender, DataGridViewCellEventArgs e) 
{ 
    lineTableAdapter.Update(fRIIBDataSet.Line); 
} 
#endregion 

,但是当我打开一些列组合框我需要做一些技巧之前更新类似于:

private void dataGridView1_RowValidated(object sender, DataGridViewCellEventArgs e) 
{ 
    //deltaTableAdapter.Update(fRIIBDataSet.Delta); TODO 
} 

private void dataGridView1_UserDeletedRow(object sender, DataGridViewRowEventArgs e) 
{ 
    deltaTableAdapter.Update(fRIIBDataSet.Delta); 
} 

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) 
{ 
    if (lambdacat != null) 
    { 
     string selected = (LimView.Rows[e.RowIndex].Cells[1] as DataGridViewComboBoxCell).FormattedValue.ToString(); 
     if (selected != "") 
     { 
      int find = Array.IndexOf(dict, dict.Where(x => x == selected).FirstOrDefault()); 
      LimView.Rows[e.RowIndex].Cells[0].Value = dictiddarray[find]; 
      //deltaTableAdapter.Update(fRIIBDataSet.Delta); 
     } 
    } 
    //deltaTableAdapter.Update(fRIIBDataSet.Delta); 
} 

解除更新方法后会出现问题。

当我用表格打开窗口时出现错误信息:内部索引损坏DataTable:“5.”如何修复/避免此错误?

+0

我不禁注意到,您使用的FormattedValue的财产,我想知道是否使用LimView.Rows [e.RowIndex] .Cells [1]。文本可能避免它...虽然我怀疑你已经试过这个并得到了相同的结果... – 2011-04-27 11:49:08

回答

1

是否修改它为这项工作?

if (selected != "") 
    { 
     int find = Array.IndexOf(dict, dict.Where(x => x == selected).FirstOrDefault()); 
     LimView.Rows[e.RowIndex].Cells[0].Value = dictiddarray[find]; 
     fRIIBDataSet.Delta.BeginInit(); // 
     deltaTableAdapter.Update(fRIIBDataSet.Delta); 
     fRIIBDataSet.Delta.EndInit(); 
    } 
+0

不是,相同的错误。损坏内部索引DataTable:“5.” – Cynede 2011-04-27 12:03:53

+0

数据集中是否有多个表,或者记录正在更新的特定表,然后是** fRIIBDataSet.Delta.Tables [“tablename”]。BeginLoadData()**和** fRIIBDataSet.Delta.Tables [“tablename”]。BeginLoadData()** – V4Vendetta 2011-04-27 12:10:03

+0

@ V4Vendetta我不确定你是什么意思。但我想同步只有一个表,它没有组合框工作。 – Cynede 2011-04-27 12:15:07