我正在尝试为数据表中的每个数据行调用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);
}
}
我可以从列表中删除该行...这是写入file..so它不会再次打印到文件。 我尝试了error.remove(line)......但它没有用..
我也得到错误提交为......下面..
我可以将它格式化为简单的两行吗?
答案 0 :(得分:0)
如果我已正确理解您的问题,要在异常之间的文件中添加一行,请执行以下操作:
foreach (string line in error)
{
file.WriteLine(line);
file.WriteLine(); //write blank line
}
此外,在循环结束后,在循环外写入文件。然后,您的文件中不会有重复的行。
答案 1 :(得分: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);
}
答案 2 :(得分:0)
您可以使用企业库更轻松地执行此操作,并且可以更加自定义。