2011-05-24 5 views
0

У меня есть очень специфическое требование. У меня есть две таблицы данных (одна и та же схема) одна таблица (aqTable) с двумя строками и другая (rapidsTable) с 5 строками. Мне нужно проверить, присутствуют ли эти 2 строки в aqTable в этих 5 строках rapidsTable или нет, если эти две строки присутствуют в rapidsTable, тогда скопируйте оставшиеся (разницу) 3 строки в aqTable.копировать DataRow из одного DataTable в другой?

Я пробовал это таким образом, но когда он перебирается на третий ряд, возникает исключение «Нет строки position2», потому что в одной таблице нет не более двух строк.

if (rapidsTable.Rows.Count > aqTable.Rows.Count) 
{ 
try 
    { 
    int aqRow = 0; rows = 0; 
    int rCount = rapidsTable.Rows.Count; 
    for (int rRow = 0; rRow < rCount; rRow++) 
    { 
     if (aqTable.Rows.Count == 0) 
     { 
     DataRow row = aqTable.NewRow(); 
     row.ItemArray = rapidsTable.Rows[aqRow].ItemArray; 
     rowStr += rapidsTable.Rows[rRow][0].ToString() + ","; 
     aqTable.Rows.Add(row); rows++; 
     } 
     else 
     { 
     string str = aqTable.Rows[aqRow].ToString(); 
     if (aqTable.Rows.ToString() == null || aqTable.Rows.ToString() == "") 
     { } 
     if ((aqTable.Rows[aqRow][1].ToString() == rapidsTable.Rows[rRow][1].ToString()) && 
      (aqTable.Rows[aqRow][2].ToString() == rapidsTable.Rows[rRow][2].ToString()) && 
      (aqTable.Rows[aqRow][3].ToString() == rapidsTable.Rows[rRow][3].ToString())) 
     { } 
     else 
     { 
      DataRow row = aqTable.NewRow(); 
      row.ItemArray = rapidsTable.Rows[aqRow].ItemArray; 
      rowStr += rapidsTable.Rows[rRow][0].ToString() + ","; 
      aqTable.Rows.Add(row); rRow = rRow - 1; rows++; 
      } 
     } 
    aqRow++; 
    } 
catch (Exception ex) 
{ throw new Exception("R>AQ Copy: " + ex.Message); } 

Есть ли способ решить эту проблему для этого исключения. Я пробовал много разных способов из разных блогов. У этого блога есть несколько лучших примеров, которые решили поделиться моей проблемой.

+0

использования 4 пробела для отступа кода – surfen

ответ

Смежные вопросы