无法打开登录请求的数据库“”。登录失败。用户'sa'登录失败

时间:2013-02-25 07:13:43

标签: c# sql-server

更新 3:
由于没有人按照@Timen的建议回答我的第一个问题,我尝试使用SQL SERVER身份验证 我启用了SQL AuthenticationSQL SERVER MANAGEMENT STUDIO并启用了sa并为其设置了一个简单的密码。(在。\ sqlexpress下)。 我可以通过saSQL SERVER MANAGEMENT STUDIO的密码成功登录数据库,但是当我尝试从我的应用程序执行此操作时,它会失败并显示以下错误消息:

  

无法打开登录请求的数据库“dbNegin”。登录失败。   用户'sa'登录失败。

我需要说我将数据库所有者更改为sa,但我收到此错误! 我现在该如何解决这个问题? :( 顺便说一下,这是我的应用程序中用于连接数据库的连接字符串:

  

string sqlconstring = @“Data Source =。\ sqlexpress; User ID = sa; Password = 123456; Initial Catalog = dbNegin”;

我的数据库是通过这种方式附加的(它位于下面的地址中)

  

d:\ TESTDB \调试\ dbNegin.mdf

这是SQL错误日志:

2013-02-25 21:51:20.80 spid51      Starting up database 'C:\USERS\FRIEND\DESKTOP\RELEASE\DBNEGIN.MDF'.
2013-02-25 21:51:21.33 spid51      Starting up database 'mytestdb'.
2013-02-25 21:51:21.60 spid51      Starting up database 'C:\USERS\FRIEND\DESKTOP\RELEASE\DBNEGIN.MDF'.
2013-02-25 21:51:35.60 Logon       Error: 18456, Severity: 14, State: 38.
2013-02-25 21:51:35.60 Logon       Login failed for user 'sa'. Reason: Failed to open the explicitly specified database. [CLIENT: <local machine>]
2013-02-25 22:11:00.79 Server      Server resumed execution after being idle 246 seconds: user activity awakened the server. This is an informational message only. No user action is required.
2013-02-25 22:11:00.97 spid51      Attempting to load library 'xplog70.dll' into memory. This is an informational message only. No user action is required.
2013-02-25 22:11:01.04 spid51      Using 'xplog70.dll' version '2007.100.1600' to execute extended stored procedure 'xp_msver'. This is an informational message only; no user action is required.
2013-02-25 22:57:29.06 spid53      Starting up database 'C:\USERS\FRIEND\DESKTOP\RELEASE\DBNEGIN.MDF'.
2013-02-25 22:58:40.51 Logon       Error: 18456, Severity: 14, State: 38.
2013-02-25 22:58:40.51 Logon       Login failed for user 'sa'. Reason: Failed to open the explicitly specified database. [CLIENT: <local machine>]
2013-02-25 23:07:09.86 Logon       Error: 18456, Severity: 14, State: 38.
2013-02-25 23:07:09.86 Logon       Login failed for user 'sa'. Reason: Failed to open the explicitly specified database. [CLIENT: <local machine>]
2013-02-25 23:07:16.37 Logon       Error: 18456, Severity: 14, State: 38.
2013-02-25 23:07:16.37 Logon       Login failed for user 'sa'. Reason: Failed to open the explicitly specified database. [CLIENT: <local machine>]

旧问题 我试图以两种模式连接到数据库(在我的系统上,数据库位于SQLSERVER Data子文件夹下,而在我的客户系统中,我希望它在我的可执行文件旁边。为此,我有两个连接字符串,一个用于我自己的系统是:

  

“Data Source =。\ SQLExpress; Initial Catalog = dbNegin; Integrated Security = True”

一个用于客户机器:

  

“数据源=。\ SQLExpress; AttachDbFilename = C:\ Users \ Master \ Documents \ Visual Studio 2010 \ Projects \ ProjectNegin \ ProjectNegin \ bin \ Debug \ dbNegin.mdf; Integrated Security = True; Connect Timeout = 30;用户实例=真“

,问题是我试图在我的系统上测试第二个场景,我将最新的数据库放在我的可执行文件旁边并更改了连接字符串并尝试运行应用程序,对于应用程序的某些部分,它连接到数据库并检索信息,但在其他一些情况下,它会因此错误而失败:

  

无法打开登录请求的数据库“dbNegin”。登录失败。   用户'Master-PC \ Master'登录失败。

Master-PC\Master是我的电脑名称!我不记得在我的连接字符串中使用它并且不知道它来自何处以及如何摆脱它。甚至最糟糕的是,现在我的前连接字符串也因此错误而失败!!。
我需要这样说,在我尝试第二个连接字符串(可执行文件旁边的字符串)之前,我在SQLSERVER DATA子文件夹中重命名了数据库,这样我就不会错过任何东西,我可以仅通过atatchfile方法连接到数据库(以避免可能的连接到我的默认数据库连接字符串) 当我尝试使用我以前的连接字符串时,我将我的数据库重命名为其原始名称(我的意思是DATA子文件夹中的一个)。但我仍然得到这个错误。 我怎么解决这个问题 ?


UPDATE: 当我尝试使用SQL SEVER MANAGEMENT STUDIO查看我的数据库时,数据库读作:

  

(恢复待定......)

我无法做任何事情(因为它说它必须要么修复要么掉线了!我找不到修理菜单!)

UPDATE 2: 我尝试删除数据库表单Management Studio并重新附加它!从管理工作室中删除它后,形成数据库列表 现在我无法重新附加它我得到错误:

  

TITLE:Microsoft SQL Server Management Studio

     

无法检索此请求的数据。   (Microsoft.SqlServer.Management.Sdk.Sfc)

     

如需帮助,请点击:   http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476

     

------------------------------附加信息:

     

执行Transact-SQL语句时发生异常或   批量。 (Microsoft.SqlServer.ConnectionInfo)

     
     

CREATE FILE遇到操作系统错误5(无法检索   此错误的文字。原因:15105)在尝试打开或创建时   物理文件'C:\ Program Files \ Microsoft SQL   Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ New folder \ dbNegin.mdf'。   (Microsoft SQL Server,错误:5123)

     

如需帮助,请点击:   http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=10.00.2531&EvtSrc=MSSQLServer&EvtID=5123&LinkId=20476

4 个答案:

答案 0 :(得分:0)

如果您与客户之间使用LAN连接,请使用此连接字符串。

"Data Source=Master-PC\Master;;Initial Catalog=dbNegin;Integrated Security=True;Connect Timeout=30;User Instance=True"

"Data Source=Master-PC\Master\SQLExpress;Initial Catalog=dbNegin;Integrated Security=True;Connect Timeout=30;User Instance=True"

对于数据源,您还可以使用PC的IP地址。 这将有助于你。

答案 1 :(得分:0)

这个主题回答了我的问题:你可以在那里找到好的信息:
The Cause For This Problem And How to Solve It
这是ScreenShot页面:

enter image description here

答案 2 :(得分:-1)

而不是Windows身份验证尝试sqlserver身份验证模式....这可能适用于你..

答案 3 :(得分:-1)

仅更改连接字符串!!

Nooo

  1. 删除游览连接字符串
  2. 为SQL Server身份验证创建密码
  3. 创建新表单
  4. 添加datagrid viwer
  5. 通过您创建的密码将datagrid viwer与数据库连接
  6. 现在通过密码

    浏览app.config生成新的连接字符串和数据库标识符

    如果更改连接字符串只是不起作用