比较if语句中的两个数据表值

时间:2014-02-22 11:43:36

标签: c# visual-studio-2008 datatable

 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() ))
      {

      }
 }

我需要比较两个数据表列值,但是我收到了错误, 这里的表和dtblAllDB是数据表..

  

运营商'&amp;&amp;'不能应用于'string'和'string'

类型的操作数

4 个答案:

答案 0 :(得分: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_idtime不匹配的行

如果你想比较两个表而不管行位置,那么你需要两个循环,如下所示。

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()))
        {
        }
    }
}

答案 1 :(得分:0)

ToString()返回表示当前对象的字符串。使用

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

在每种情况下。并且还使用==来比较字符串

答案 2 :(得分: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()))

答案 3 :(得分: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()))
   { }

OR

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