2015-01-11 5 views
0

У меня есть DataTable dtOne, имеющие записи, как показано ниже:Проверить значения в DataTable

ColumnA ColumnB ColumnC 
1001 W101 ARCH 
1001 W102 ARCH 
1002 W103 CUSS 
1003 W104 ARCH 

И еще DataTable dtTwo, имеющие значения, как:

ColumnA 
ARCH 
CUSS 

Мне нужно, чтобы проверить, существует ли значение dtTwo в dtOne или нет, если не писать его на веб-странице.

Я написал код ниже, но он не работает должным образом. Мне нужно проверить, как, если ARCH из таблицы dtTwo присутствует в dtOne, не проверяйте дальше, просто напишите его на веб-странице.

for (int counter = 0; counter < dtTwo.Rows.Count; counter++) 
    { 
    var contains=dtOne.Select("ColumnC= '" + dtTwo.Rows[counter][0].ToString() + "'"); 
    if (contains.Length == 0) 
     { 
     Response.Write("CostCode "+dtTwo.Rows[counter][0].ToString()+" not present in the Excel"); 
     } 
    } 

Эксперты, пожалуйста, помогите.

EDIT: Моя функциональность достигается, когда я пишу приведенный ниже код, но получаю предупреждение о том, что недопустимый код обнаружен в переменной счетчика.

Не думаю, что это правильно.

for (int counter = 0; counter < dtTwo.Rows.Count; counter++) 
     { 
     var contains=dtOne.Select("ColumnC= '" + dtTwo.Rows[counter][0].ToString() + "'"); 
     if (contains.Length == 0) 
      { 
      Response.Write("CostCode "+dtTwo.Rows[counter][0].ToString()+" not present in the Excel"); 
      } 
      break; 
     } 

С уважением

+0

[break] (http://msdn.microsoft.com/en-us/library/adbctzc4.aspx) является вашим другом здесь. – Steve

+0

Должен ли он быть добавлен после строки Response.Write? – Anurag

+0

Да, цикл for прерывается при перерыве – Steve

ответ

1

По вашему разъяснению, вы хотите, чтобы остановить, если вы найдете матч из второй таблицы, в первой таблице.

Затем вам нужно добавить заявление перерыва, когда ваш Select находит одну или несколько строк, который соответствует условию

for (int counter = 0; counter < dtTwo.Rows.Count; counter++) 
{ 
    var contains=dtOne.Select("ColumnC= '" + dtTwo.Rows[counter][0].ToString() + "'"); 
    if (contains.Length != 0) 
    { 
     Response.Write("CostCode "+dtTwo.Rows[counter][0].ToString()+" not present in the Excel"); 
     break; 
    } 
} 

От C# ссылка

Оператор перерыва завершает ближайший цикл ограждающего или switch заявление, в котором оно появляется. Элемент управления передается в утверждение, что следует за завершенным оператором, если таковой имеется.

+0

Mr.Steve..Пожалуйста, посмотрите мой вопрос еще раз. Я его отредактировал. – Anurag

+0

Как я уже говорил в чате, вам нужно перерыв внутри if {true-block} не после. Если вы положите его после выхода из цикла for после первой итерации, а счетчик ++ никогда не будет достигнут, как вы можете видеть из полученного предупреждения – Steve

+0

Да .. Я получил его. Спасибо. – Anurag

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