0

我想比较两个查询结果,看看它们是否相同。如果结果相同,我想显示一个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");
4

3 回答 3

3

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

于 2013-07-26T03:18:38.910 回答
0

您需要做的就是在 using 块之外声明字符串,但仍然在 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(),如果您愿意,可以设置选项以使其也不区分大小写,THIS并且this被认为是相等

if (result1.Equals(result2, StringComparison.OrdinalIgnoreCase))
    MessageBox.Show("They are same");
else
    MessageBox.Show("They are not same");
于 2013-07-26T05:32:17.960 回答
0

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

于 2013-07-26T03:23:56.553 回答