我用 Server 2008 R2速成版制作了我的数据库,软件是用和C# Windows 制作的,用来存储一家大公司的库存数据。
我在软件中使用BackgroundWorker不断地检查股票是否已经更新,但出于某种原因,它显示了下面的错误。
无法打开登录请求的数据库"Inventory_New“。登录失败。用户“sa”登录失败。
我已经浏览了很多博客和文章,但是没有一个解决方案对我有用。
我可以使用用户sa登录,并且响应良好。
该软件工作正常,但在整个一天中它随机显示上述错误(每天6-7次,没有固定时间)。
SQL错误日志
下面是我在SQL中发现的错误,但我不明白这意味着什么
2017-05-12 05:01:41.78登录错误: 18456,严重性: 14,状态: 38. 2017-05-12 05:01:41.78用户“sa”登录失败。原因:未能打开显式指定的数据库。客户:
编辑
最近,我看到当我得到这个错误时,由于某种原因,数据库进入了恢复模式。
我还检查了一些为什么数据库进入恢复模式的文章,但这些文章似乎都不符合要求,因为在我的例子中,数据库在2到3秒的短暂休息后自动联机。
发布于 2017-05-12 09:42:55
错误指示无法打开的数据库Inventory_New。这意味着应用程序请求将此数据库作为初始目录,但数据库不在联机状态。例如,它可以是在还原的中间,也可以是脱机的。当您使用Management连接到服务器时,您不提交该数据库,我想sa登录的默认数据库是master,因此您成功登录。您应该检查一下为什么您的Inventory_New数据库没有联机。
发布于 2017-05-12 07:59:18
首先检查您的连接是否都已关闭并已处理。
将您的SqlConnection放在一个using块中,看看这是否改善了一些事情:
using (SqlConnection con = new SqlConnection(strConnect))
{
...
}如果没有这样做,那么很可能SQL已经耗尽了连接--特别是当您正在创建、打开和丢弃一个新连接时。
https://stackoverflow.com/questions/43931924
复制相似问题