我需要对下面的代码提出一些建议,其中,我正在将一些数据写入文件,同时我更新数据库中的记录。
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条记录的数据。因此,跟踪已更新的记录变得非常困难。
如果出现问题,请你帮我解决这个问题,然后在此之前写下文件中的数据。
答案 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);
}