Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法打开登录请求的数据库“Inventory\u New”。登录失败。用户“sa”登录失败_C#_Sql_Sql Server_Sql Server 2008 R2_Backgroundworker - Fatal编程技术网

C# 无法打开登录请求的数据库“Inventory\u New”。登录失败。用户“sa”登录失败

C# 无法打开登录请求的数据库“Inventory\u New”。登录失败。用户“sa”登录失败,c#,sql,sql-server,sql-server-2008-r2,backgroundworker,C#,Sql,Sql Server,Sql Server 2008 R2,Backgroundworker,我的数据库是用SQL Server 2008 R2 Express Edition制作的,该软件是用VS C Windows窗体制作的,用于存储一家大公司的库存数据 我在软件中使用BackgroundWorker不断检查库存是否已更新,但出于某种原因,它显示以下错误 无法打开登录请求的数据库资源清册。\u New。登录失败。 用户“sa”登录失败 我已经浏览了很多博客和文章,但没有一个解决方案适合我 我可以使用用户sa登录SQLServerManagementStudio,它响应良好 该软件工作

我的数据库是用SQL Server 2008 R2 Express Edition制作的,该软件是用VS C Windows窗体制作的,用于存储一家大公司的库存数据

我在软件中使用BackgroundWorker不断检查库存是否已更新,但出于某种原因,它显示以下错误

无法打开登录请求的数据库资源清册。\u New。登录失败。 用户“sa”登录失败

我已经浏览了很多博客和文章,但没有一个解决方案适合我

我可以使用用户sa登录SQLServerManagementStudio,它响应良好

该软件工作正常,但一天中随机显示上述错误6-7次,没有固定时间

SQL错误日志 下面是我在SQL错误日志中发现的错误,但我不明白这意味着什么

2017-05-12 05:01:41.78登录错误:18456,严重性:14,状态: 382017-05-12 05:01:41.78用户“sa”登录失败。原因:无法打开显式指定的数据库。[客户: ]

编辑 最近我看到,当我遇到这个错误时,数据库出于某种原因进入了恢复模式。
我还查看了一些文章,了解数据库为何进入恢复模式,但没有一篇文章符合要求,因为在我的情况下,数据库在短暂中断2-3秒后自动联机。

首先检查您的连接是否已关闭并已释放

将您的SqlConnection放入using块中,看看这是否能改善情况:

using (SqlConnection con = new SqlConnection(strConnect))
{
...
}

如果您没有这样做,很可能是SQL已用完连接—特别是在您创建、打开和丢弃新连接时。

该错误指示您无法打开数据库Inventory\u new。这意味着您的应用程序要求将此数据库作为初始目录,但该数据库未联机。它可以在恢复的中间,或者只是离线。 当您使用ManagementStudio连接到服务器时,您不会提交该数据库,我猜sa登录的默认数据库是master, 所以你成功登录了。
您应该检查为什么您的库存\新数据库未联机

您可以使用用户sa使用Sql Server Management Studio登录吗?@Max我已经浏览了许多博客和文章,但没有一个解决方案适用于me@user2657943是的,我可以,它的反应很好,但一整天它都会随机弹出这个错误消息更新提出问题,最好详细说明错误的情况。总是随机的x时间之后?否则问题就太广泛了。@Max先生,你想让我分享什么样的细节?我不知道,我在整个程序中没有使用任何alter语句,没有alter语句,任何人都无法使数据库脱机。如果你不是服务器上唯一的系统管理员,其他人都可以这样做,即使是数据库的数据库也可以使其脱机。发生错误时,您是否检查了数据库的状态?您还可以检查SQL Server错误日志,因为所有命令(如ALTER DATABASE SET OFFLINE)都已在该日志中注册,因此您可以查明数据库是否正在恢复,etci检查了它并在上面发布了错误日志,我甚至看到在我收到此错误时SQL数据库进入恢复模式我不知道为什么您的数据库启用了自动关闭选项?在这种情况下,它会在每次没有活动连接时脱机,并在每次请求时联机。最好将此选项更改为false,每次需要服务器资源才能使其联机时,另一个处于恢复状态的最后一个选项是最近的恢复。数据库只运行两种类型的恢复,即联机时启动恢复和恢复后启动恢复。如果恢复了if,您可以在errorlog中看到这一点。我将在检索数据后立即删除连接,并对其使用相同的方法。