文件写入异常处理

时间:2015-09-18 09:54:54

标签: c# asp.net c#-4.0 file-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条记录的数据。因此,跟踪已更新的记录变得非常困难。

如果出现问题,请你帮我解决这个问题,然后在此之前写下文件中的数据。

1 个答案:

答案 0 :(得分:1)

在写入文件

后,只需移动该行即可插入数据
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);

}