0

データテーブルのデータ行ごとに、2つのストアドプロシージャを呼び出そうとしています。これらのSpで例外が発生したとき、私は例外をキャッチしてファイルに送信しようとしています。

StreamWriter file = new StreamWriter(@"c:\Error.txt",false);
foreach (DataRow row in dt.Rows)
{
    try
    {
        UpdateEvent(LN);
    }
    catch (Exception e)
    {

        //continue; 
    }

    try
    {
        insertevent(LN, note);
    }
    catch (Exception e)
    {

    }

    foreach (string line in error)
    {
        file.WriteLine(line);      
    }   
}

ファイルに書き込まれる行をリストから削除して、ファイルに再度出力されないようにすることはできますか?error.remove(line)を試しましたが、機能しませんでした。

また、...以下のようにファイルにエラーが発生します。

万が一、単純な2行にフォーマットできますか?

4

3 に答える 3

0

最初のループからループを終了する必要があります。

StreamWriter file = new StreamWriter(@"c:\Error.txt",false);
List<string> error = new List<string>();
          foreach (DataRow row in dt.Rows)
          {
                        try
                        {
                            UpdateEvent(LN);
                        }
                        catch (Exception e)
                        {
                            error.Add(String.Format("Exception for Loan Number {0} with a Error {1}", row["LN"].ToString(), e.ToString()));
                            //continue; 
                         }
                        try
                        {
                            insertevent(LN, note);
                        }
                        catch (Exception e)
                        {
                            error.Add(String.Format("Exception for Loan Number {0} with a Error {1}", row["LN"].ToString(), e.ToString()));
                            //continue; 
                         }
            }

            foreach (string line in error)
            {
                file.WriteLine(line);
            }
于 2012-08-06T15:52:15.213 に答える
0

Enterpriseライブラリを使用すると、はるかに簡単に実行でき、よりカスタマイズ可能になります。

于 2012-08-06T15:52:23.517 に答える
0

あなたの質問を正しく理解した場合、例外の間にファイルに行を追加するには、次のようにします。

 foreach (string line in error)
 {
    file.WriteLine(line);
    file.WriteLine();  //write blank line
 }

また、ループが終了した後、ループの外側にファイルを書き込みます。そうすれば、ファイルに重複する行がなくなります。

于 2012-08-06T15:49:22.870 に答える