以下は、UI、BLLおよびDALのコードです。 DLL のexecutenonqueryに問題がある場合、BLLは例外を処理し、ユーザに一般的なメッセージを表示する必要があります。私たちはエラー処理のためにElmahを使用しています。誰も例外を処理し、一般的なメッセージページ(エラー500など)をユーザに表示する方法を提案してください。elmahによる例外処理
コントローラ
refNo = _formServiceWorker.SubmitFormData(formData, isFinalized);
ビジネスロジック層:あなたは完全なコードをラップ(または単にsqlcmd.ExecuteNonQueryする必要があります
public SubmissionHeaderDTO GetRefNo(SubmissionHeaderVariablesDTO requestVariables)
{
using(var sqlConn = new SqlConnection(Configuration.DBConnection))
{
sqlConn.Open();
using (var sqlcmd = new SqlCommand("usp_testSubmissionHeaderInsert", sqlConn))
{
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.Add("@FormId", SqlDbType.UniqueIdentifier).Value = requestVariables.FormId;
SqlParameter outputSubmissionSequence = new SqlParameter("@SubmitSequence", SqlDbType.NVarChar, 30)
{
Direction = ParameterDirection.Output
};
SqlParameter outputFormGuid = new SqlParameter("@FormIdGuid", SqlDbType.UniqueIdentifier)
{
Direction = ParameterDirection.Output
};
sqlcmd.Parameters.Add(outputSubmissionSequence);
sqlcmd.Parameters.Add(outputFormGuid);
sqlcmd.ExecuteNonQuery();
var submissionHeaderDto = new SubmissionHeaderDTO()
{
SubmissionId = (Guid)outputSubmissionId.Value,
SubmitSequence = outputSubmissionSequence.Value.ToString(),
FormId = (Guid)outputFormGuid.Value
};
return submissionHeaderDto;
}
}
}