我有一个数据表单,可以在按下按钮时执行一些计算。按下此按钮后,将实例化静态类的对象。此对象也调用其他各种类中的不同方法。
我设计了这些类,如果抛出任何错误,将处理异常并且类方法将在asp:ValidationSummary中显示错误消息。
现在,当从这个数据表单中,我尝试保存我的值,即使validationSummary在表单上显示错误,无效值也会保存在数据库中。
我可以在这个外部类中创建一个名为IsValid的静态属性,每次方法抛出异常时都会将其设置为false,但是由于这些方法被对象重复调用,因此如果存在这个属性,则该属性将设置为true不会抛出任何异常,从而导致绕过IF条件。
有没有办法处理这种情况?
这是抛出异常的方法。此方法属于ClsOmChallan类。 .dll文件在我的项目中引用,没有别的。
public static double getResultFromAstmTables(string TableName, double ObserveTemp, double ObserveGravity)
{
SqlConnection conn = new SqlConnection(clsConnection.ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.Connection = conn;
cmd.CommandText = "select result from astm_tables where table_no = '" + TableName + "' and temperature = '" + ObserveTemp + "' and gravity = '" + ObserveGravity + "'";
try
{
conn.Open();
double result1;
result1 = Convert.ToDouble(cmd.ExecuteScalar());
isValid = true;
return result1;
}
catch (Exception ex)
{
ValidationError.Display("clsAstmTables + getResultsFromAstmTables " + ex.Message.ToString());
isValid = false;
return 0;
}
finally
{
if (conn.State == System.Data.ConnectionState.Open) conn.Close();
cmd.Dispose();
}
}
答案 0 :(得分:0)
您可以尝试使用将在服务器端调用验证方法的验证程序。 Validator知道显示验证摘要和停止页面处理。
另外,你可以尝试
public override void Validate() {
//put your logic here
// Now perform validation
base.Validate();
}
有关详细信息,请查看this。