0

不知道爲什麼這是失敗......我敢肯定這是我的錯。任何幫助將不勝感激。無法打開數據庫

我得到了經典

無法打開數據庫「羅斯文」由登錄請求。 登錄失敗。用戶'MyMachine \ MyUserName'登錄失敗。

我可以使用Windows身份驗證通過SQL Server Management Studio登錄得很好。

我檢查了SQL Server Management Studio以確保我的用戶有權使用Northwind數據庫。我也嘗試了大多數對這個問題的其他迴應,這裏貼在了stackoverflow上。

這是我的代碼:

 SqlConnection dataConnection = new SqlConnection(); 
     try 
     { 
      SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); 
      builder.DataSource = ".\\SQLExpress"; 
      builder.InitialCatalog = "Northwind"; 
      builder.IntegratedSecurity = true; 
      dataConnection.ConnectionString = builder.ConnectionString; 
      dataConnection.Open(); 

... 。

我使用SQL Server 2008 Express的

+0

如果你設置'IntialCatalog =「master」;'?你可以打開連接嗎? – driis

+0

是的。如果我使用master,它會連接。 – Anonymous

+0

在這種情況下,您的_login_工作,所以您或者a)無法訪問「Northwind」數據庫,或者b)「Northwind」數據庫不存在。仔細檢查,如果你有錯別的地方。 – driis

回答

0

嘗試做這種方式,它總是爲我工作,太簡單,因爲你可以直接從連接字符串僅通過指定的字符串作爲參數,這樣創建一個新的SQL連接對象:

string connectionString = @"Server=server\instance;Database=Northwind;Integrated Security=True"; 
SqlConnection dataConnection = new SqlConnection(connectionString); 
try 
{ 
dataConnection.Open(); 
} 
catch (sqlexception e) 
{ 
Messagebox.Show("Error"); 
} 
1
  1. 在你的MS SQL Studio中右鍵單擊服務器,並進入屬性Security並選擇SQL Server and Windows Authencation mode

enter image description here

然後重新啓動服務器。

  1. 在您的服務器中。轉到安全文件夾並創建一個新的登錄enter image description here

  2. 輸入用戶名和密碼。只要取消Enforced Security(僅用於測試目的)enter image description here

  3. 去用戶映射和檢查數據庫(羅斯文)您希望新的登錄帳戶來處理,然後db_accessadmin enter image description here

  4. 單擊確定

,並嘗試你的代碼

SqlConnection dataConnection = new SqlConnection(); 
      try 
      { 
       SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); 
       builder.DataSource = "UNKNOWN01-PC\\SQLEXRESS2008R2"; 
       builder.InitialCatalog = "Northwind"; 
       //builder.IntegratedSecurity = true; 
       builder.UserID = "testlogin"; 
       builder.Password = "1234"; 
       dataConnection.ConnectionString = builder.ConnectionString; 
       dataConnection.Open(); 
      } 
      catch (Exception) 
      { 
       throw; 
      } 

我懷疑這裏真正的問題是SqlConnectionStringBuilder,但我無法解釋。我只是一個初學者。 :)

+0

我之前嘗試過...仍然無法連接。只是一個不同的錯誤信息。登錄失敗'' – Anonymous

+0

您的計算機中安裝了多少個ms sql server? – spajce

+0

只有一個。 SQL Express 2008 – Anonymous

1

我只是寫這個,這樣我就不會陷入同一陷阱一次又一次......數據庫的默認名稱是「NORTHWND」,而不是「NORTHWIND」 該名稱是由官方網站導入.bak文件時由Windows sql server自動創建的。 所以這是好的

static string connectionString = "data source=GMDESK028\\SQLSERVER2;initial catalog=NORTHWND;Integrated Security=SSPI;";