int phaseOneResult = phaseOne();
if (phaseOneResult > 0)
{
Response.Redirect("success.aspx?msg=Details submitted");
}
else
{
lblPhaseOneErr.Text = "No such record found";
}
上面的代码适用于INSERT目的,但对于UPDATE,它不起作用。知道这个逻辑有什么问题吗?
这是phaseOne功能代码
private int phaseOne()
{
int phaseOneResult = 0;
//Update query here
//...
//...
cmdUpdatePhaseOne.ExecuteNonQuery();
}
catch (Exception ex)
{
lblPhaseOneErr.Text = "Error submitting: " + ex.Message;
}
finally
{
connection.Close();
}
}
return phaseOneResult;
}
我的数据实际上已经正确更新了,它只是没有进入success.aspx页面,一直给我“没有找到这样的记录”,即使它是成功更新
答案 0 :(得分:3)
嗯,这不是合法代码......但是从你所展示的,在phaseOne()中你将phaseOneResult设置为0但从未将其设置为其他任何东西。因此它总是返回0.
答案 1 :(得分:1)
您已在phaseOne方法中将phaseOne Result初始化为0,而在其他任何地方都不会更改该值,因此它总是重新调零,否则仅执行条件。
答案 2 :(得分:1)
尝试将代码更改为
private int phaseOne()
{
int phaseOneResult = 0;
try
{
//Update query here
//...
//...
if(cmdUpdatePhaseOne.ExecuteNonQuery() > 0)
{
phaseOneResult = 1;
}
}
catch (Exception ex)
{
lblPhaseOneErr.Text = "Error submitting: " + ex.Message;
}
finally
{
connection.Close();
}
return phaseOneResult;
}
这样,如果受影响的行数> 0,您将只返回1的返回值。否则它将返回0.