我想比较两个查询结果,看看它们是否相同。如果结果相同,我想显示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");
答案 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()
,如果您愿意,可以设置选项以使其不区分大小写,以便将THIS
和this
视为相等
if (result1.Equals(result2, StringComparison.OrdinalIgnoreCase))
MessageBox.Show("They are same");
else
MessageBox.Show("They are not same");