c# - 如何处理数据库异常/问题?

标签 c# .net sql-server

我的一个c#应用程序,我编写了如下的sql连接代码

try 
{ 
   myConnection = new SqlConnection(m_resourceDB.GetResourceString(nSiteID,  ApplicationID.XClaim,(short)nResID ) ); 
   myConnection.open();
}

我想处理 sqlserver 的未知问题,例如数据库关闭、超时。

为此,我虽然引入了 3 次 for 循环,循环之间有 3 分钟的 sleep ,如果存在所有问题,那么我将退出循环

不知道我的想法对不对?我需要一些专家的建议吗?有什么例子吗?

最佳答案

我想简单地说:与连接等通信的代码不应该进行休眠/重试,除非该代码已经是异步的。如果顶级调用 代码想要捕获异常并设置一个计时器(而不是 sleep )并重试,那么很好 - 但您想要避免的是:

var data = dal.GetInfo();

突然用了3分钟。如果它是一个异步/回调,您可能会逃避它,并且您已经明确宣传该方法可能需要几分钟才能执行。但即便如此,也感觉有些牵强。如果您负责应用程序逻辑,为什么不在第一时间捕获异常,告诉用户,并让用户在将来的某个时间点再次点击按钮?

关于c# - 如何处理数据库异常/问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8307516/

相关文章:

c# - 如何打印对象 ID?

c# - 使用 API 更新 eBay 上的订单状态?

sql - 通过 IN SQL Server 查询仅查找单词中的大写字母

sql-server - 比较 SQL Server 2005 中 DateTime 数据类型的时间部分

c# - 哪个更好?在存储库或域级服务(通过 IQueryable 或其他)中有复杂的搜索逻辑吗?

c# - UWP Ctrl+F 实现

c# - 跳跃比。重力

C#:事件和线程安全 GUI 更新

.NET:从字符串到对象

sql-server - SQL Server 计划重置