文件写入异常处理

File Writing Exception Handling

我需要对下面的代码提出一些建议,我在其中将一些数据写入文件,同时更新数据库中的记录。

foreach (DataRow dr in dtCSVdata.Rows)
{
    StringBuilder sbData = new StringBuilder();

    //Below line of code is used to write data in database
    SQLHelper.MoveOtherQuotesToWaitingArivalOfBags(quoteHeaderId, Config.WSUserName, refCode);

    foreach (object obj in dr.ItemArray)
    {
         if (sbData.Length == 0)
         {
             sbData.Append("\"");
             sbData.Append(RemoveSpecialCharacters(obj.ToString()));
             sbData.Append("\"");
         }
         else
         {
              sbData.Append(",");
              sbData.Append("\"");
              sbData.Append(RemoveSpecialCharacters(obj.ToString()));
              sbData.Append("\"");
         }
     }
     //Write to file
     writer.WriteLine(sbData.ToString());
}

有时在更新数据库中的记录时会发生超时异常,当发生异常时,控制权将传递给 catch 块,并且没有数据写入文件。

假设有100条记录,循环刚刚更新了50条记录,那么50条记录的文件中没有数据写入。因此,跟踪更新了哪些记录变得非常困难。

你能帮我解决这个问题吗?如果出现问题,那么文件中的数据应该在那之前写入。

写入文件后移动插入数据行,

foreach (DataRow dr in dtCSVdata.Rows)
{
 StringBuilder sbData = new StringBuilder();

//comment Below line of codewhich is used to write data in database
// SQLHelper.MoveOtherQuotesToWaitingArivalOfBags(quoteHeaderId, Config.WSUserName, refCode);

foreach (object obj in dr.ItemArray)
{
     if (sbData.Length == 0)
     {
         sbData.Append("\"");
         sbData.Append(RemoveSpecialCharacters(obj.ToString()));
         sbData.Append("\"");
     }
     else
     {
          sbData.Append(",");
          sbData.Append("\"");
          sbData.Append(RemoveSpecialCharacters(obj.ToString()));
          sbData.Append("\"");
     }
 }
 //Write to file
 writer.WriteLine(sbData.ToString());
 writer.close();//may use using 
 //after writing insert into database table.
 SQLHelper.MoveOtherQuotesToWaitingArivalOfBags(quoteHeaderId, Config.WSUserName, refCode);

}