0

ボタンを押すといくつかの計算を実行するデータフォームがあります。このボタンを押すと、静的クラスのオブジェクトがインスタンス化されます。このオブジェクトは、他のさまざまなクラスでもさまざまなメソッドを呼び出します。

これらのクラスは、エラーがスローされた場合に例外が処理され、クラス メソッドが 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();
        }

    }
4

1 に答える 1