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'
类型的操作数
答案 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_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()))
{
}
}
}
答案 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())
{ }