2014-02-22 5 views
1
for (int i = 0; i < dtblAllDB.Rows.Count; i++) 
{     
     if ((table.Rows[i]["customer_id"].ToString() && table.Rows[i]["time"].ToString()) != (dtblAllDB.Rows[i]["customer_id"].ToString() && dtblAllDB.Rows[i]["time"].ToString())) 
     { 

     } 
} 

Мне нужно сравнить два DataTable значения столбца, но я получаю ошибку, здесь стол и dtblAllDB является DataTables ..сравнить два DataTable значения, если оператор

Оператор «& &» не может быть применен к операндам типа «строки» и «строки»

ответ

1

&& операнда может быть применен к bool но не string, года ур состояние было бы что-то вроде

for (int i = 0; i < dtblAllDB.Rows.Count; i++) 
{ 
    if (!(table.Rows[i]["customer_id"].ToString() == dtblAllDB.Rows[i]["customer_id"].ToString() 
    && table.Rows[i]["time"].ToString() == && dtblAllDB.Rows[i]["time"].ToString())) 
    { 
    } 
} 

Хотя это не имеет особого смысла, так как он будет сравнивать строки таблицы по строкам и отфильтровать строки, которые не совпадают как cutomer_id и time

Если вы хотите сравнить две таблицы, независимо от позиции строки, тогда вам понадобятся две петли, как показано ниже.

for(int k = 0; k < table.Rows.Count; k++) 
{ 
    for (int i = 0; i < dtblAllDB.Rows.Count; i++) 
    { 
     if (!(table.Rows[k]["customer_id"].ToString() == dtblAllDB.Rows[i]["customer_id"].ToString() 
     && table.Rows[k]["time"].ToString() == && dtblAllDB.Rows[i]["time"].ToString())) 
     { 
     } 
    } 
} 
0

ToString() возвращает строку, представляющую текущий объект. Использовать

Convert.ToString(table.Rows[i]["customer_id"]) 

в каждом случае. А также использовать == для сравнения между строками

0

Вам нужно сравнить каждое значение отдельно. Я думаю, что это то, что вы хотите сделать:

if ((table.Rows[i]["customer_id"].ToString() != dtblAllDB.Rows[i]["customer_id"].ToString()) 
    && ((table.Rows[i]["time"].ToString() != dtblAllDB.Rows[i]["time"].ToString()) 
    && (table.Rows[i]["customer_id"].ToString() != dtblAllDB.Rows[i]["time"].ToString()) 
    && (table.Rows[i]["time"].ToString() != dtblAllDB.Rows[i]["customer_id"].ToString())) 
0

Используйте знак плюс (+), чтобы соединить две строки в C#

if ((table.Rows[i]["customer_id"].ToString() + table.Rows[i]["time"].ToString()) != (dtblAllDB.Rows[i]["customer_id"].ToString() + dtblAllDB.Rows[i]["time"].ToString())) 
    { } 

ИЛИ

if (table.Rows[i]["customer_id"].ToString() != dtblAllDB.Rows[i]["customer_id"].ToString() && table.Rows[i]["time"].ToString() != dtblAllDB.Rows[i]["time"].ToString()) 
    { } 
Смежные вопросы