我刚刚上传了我的第一个 ASP.NET(作为我学习 vb.net 的一部分),并且在连接池中陷入了严重的混乱(当您的网站有超过 1 个用户时会发生有趣的事情),现在所有这些都被更好地使用了try catch 语句的一部分(这个想法是要学习的)但是我想知道这是否是最好的/最终的方法,现在如果尝试失败,那么页面上的很多细节都没有放置/更新,所以如果您正在做一些数据库工作并且尝试失败,您是否重新加载页面...重定向到自我并希望它下次工作...或者只是通知用户有错误,他们应该再试一次?
谢谢
我刚刚上传了我的第一个 ASP.NET(作为我学习 vb.net 的一部分),并且在连接池中陷入了严重的混乱(当您的网站有超过 1 个用户时会发生有趣的事情),现在所有这些都被更好地使用了try catch 语句的一部分(这个想法是要学习的)但是我想知道这是否是最好的/最终的方法,现在如果尝试失败,那么页面上的很多细节都没有放置/更新,所以如果您正在做一些数据库工作并且尝试失败,您是否重新加载页面...重定向到自我并希望它下次工作...或者只是通知用户有错误,他们应该再试一次?
谢谢
我永远不会自动重定向并希望它下次能正常工作(你可能会陷入无限循环)。
通知用户和可选的链接以再次尝试。
您甚至可能想分析您的异常,看看是否再次尝试会有所帮助。有些异常确实是错误,再试一次也无济于事。
如果发生意外错误,请将用户重定向到错误页面,因为它可能会在下一次发生。
您是否查看过数据库连接和读取器的“使用”语句?
using
对于所有实现的对象IDisposable
(例如连接和读取器),您应该明确使用“ ”语句。'using' 语句在幕后被转换为 try-finally 块,并确保即使发生错误也调用 Dispose()。
这是一个代码片段示例:
using (SqlConnection conn = new SqlConnection(this.connectionString))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "LoadFromRepository";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ID", fileID);
conn.Open();
using (SqlDataReader rdr =
cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
while (rdr.Read())
{
// do something with read data
}
}
}
}