如何比较两个查询的结果?

时间:2013-07-26 03:17:31

标签: c# string-comparison

我想比较两个查询结果,看看它们是否相同。如果结果相同,我想显示MessageBox;如果不做别的事。

using (OracleCommand crtCommand = new OracleCommand(query1, conn1))
{
    string result1 = crtCommand.ExecuteScalar().ToString();
}

using (OracleCommand ctCommand = new OracleCommand("query2", conn1))
{
    string result2 = ctCommand.ExecuteScalar().ToString();
}

if (result1 == result2)
    MessageBox.Show("They are same");
else
    MessageBox.Show("They are not same");

3 个答案:

答案 0 :(得分:3)

您需要在using语句之外声明变量,以便它们在该范围之外可见。

答案 1 :(得分:0)

如果你的查询都返回字符串输出,你可以使用string.Compare方法来比较它们,并根据输出有条件地做你想做的事情。但是,你问的问题就不那么简单了。你能进一步详细说明你的问题吗?

答案 2 :(得分:0)

您需要做的就是在使用块之外声明字符串,但仍将它们分配到using块中。

string result1;
string result2;

using (OracleCommand crtCommand = new OracleCommand(query1, conn1))
{
    result1 = crtCommand.ExecuteScalar().ToString();
}

using (OracleCommand ctCommand = new OracleCommand("query2", conn1))
{
    result2 = ctCommand.ExecuteScalar().ToString();
}

if (result1.Equals(result2))
    MessageBox.Show("They are same");
else
    MessageBox.Show("They are not same");

另外,我建议您将==替换为.Equals(),如果您愿意,可以设置选项以使其不区分大小写,以便将THISthis视为相等

if (result1.Equals(result2, StringComparison.OrdinalIgnoreCase))
    MessageBox.Show("They are same");
else
    MessageBox.Show("They are not same");