2011-08-24 189 views
0

雖然我使用ADO.NET建立了與SQL Server的連接,但它顯示錯誤。當我使用ADO.NET連接到數據庫時,出現錯誤

以下是代碼:

SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=abdul;Integrated Security=true"); 
SqlCommand cmd = new SqlCommand(); 

con.Open(); 

String str="select * from emp where empname='Abdul'"; 
cmd = new SqlCommand(str, con); 

SqlDataReader dr = cmd.ExecuteReader(); 

if (dr == null || !dr.HasRows) 
{ 
    MessageBox.Show("No Records found"); 
} 
else 
{ 
    while (dr.Read()) 
    { 
     textBox1.Text = dr[0].ToString(); 
     textBox2.Text = dr[1].ToString(); 
    } 
} 

當我運行項目它顯示了以下錯誤:

Cannot open database "abdul" requested by the login. The login failed.

什麼要做的?

+2

您是否創建了名爲'abdul'的數據庫?您的應用程序是否使用創建數據庫的相同用戶帳戶運行? – Yahia

+1

缺少連接字符串中的密碼?嘗試一下。 –

+0

程序在其下運行的帳戶是否具有服務器和數據庫的權限? – Tim

回答

0

登錄在SQL Server級別成功。然後要麼

  • 數據庫存在,但使用的是不具有對數據庫的訪問
  • 登錄該數據庫不存在

在SSMS,去adbul數據庫。展開安全節點並添加相關用戶(映射到登錄名)+安全性。如果你仍然不能,你是否創建了數據庫單用戶?

目前很難提供更多細節。

+0

對不起,我是新來的sqlserver,我不知道像這樣的單一用戶,我只是簡單地創建它。請解釋我解決這個問題。 –

0

您需要檢查您所連接的用戶是否爲有效的SQL登錄,並且提供的密碼是正確的。您還需要確保登錄在他們嘗試連接的數據庫中具有關聯的SQL用戶。

SQL登錄用於訪問服務器本身,並將它們映射到數據庫SQL用戶。

0

你說你創建了數據庫。你是怎麼做的?來自sql管理工作室嗎?如果是這樣,是否在執行上述程序代碼的同一個Windows會話中?

我問,因爲如果你可以創建一個數據庫,我相信你應該能夠連接到它。

我想看看與Sql Management Studio成功連接並試圖超越問題中第三行代碼的區別。 (假設這是失敗的地方,甚至可以編輯這個問題以取代以上的界限)。

相關問題