2011-04-27 83 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