2011-08-24 154 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成功连接并试图超越问题中第三行代码的区别。 (假设这是失败的地方,甚至可以编辑这个问题以取代以上的界限)。