私は自分のプロジェクトで多くのトランザクションを使用しています:このように:
bool retVal = true;
string errorCode = string.Empty;
try
{
result = RecordsDal.ReadAllDoneRecords();
retVal = Export(result, out errorCode);
}
catch
{
Errorlog(errorCode, ex.Message);
MessageBox.Show("Error Export "+ Environment.NewLine + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return false;
}
エクスポート:
public static bool Export(List<Record> result, out string error)
{
bool retVal = true;
error = "sqlCeConnection";
SqlCeConnection sqlCeConnection = null;
error = "Initializiong";
SqlTransaction trans = null;
try
{
error = "Begin";
.......
error = "End";
}
catch (Exception ex)
{
trans.Rollback();
retVal = false;
}
}
エラーログを使用して、どこに問題があるかを把握します。
アプリケーションは多くのクライアントで正常に動作しますが、新しいアプリにアプリをインストールすると、ファイルログにエラーが発生し、コードエラーと例外ex.Messageが発生します
初期化中:オブジェクト参照がオブジェクトのインスタンスに設定されていません
この行のエラー:SqlTransaction trans = null;
申し訳ありませんが、実際の問題が見つかりました。sqlCeがインストールされていません。また、ex.innerexception = nullがあり、ログには実際のエラーではなくこのエラーが保存されています。