无法打开除我的其他计算机登录所请求的数据库

时间:2013-10-09 14:21:02

标签: c# sql

您好我创建了一个C#winforms应用程序,我添加了一个与我在Management Studio中的Sql Server 2008 Express中创建的数据库的连接。我发布了这个项目,一切似乎都在我的计算机上工作正常,但当我在另一台计算机上运行安装程序时,该程序已停止工作并显示此消息错误。 我希望应用程序可以在任何计算机上运行。

问题签名:   问题事件名称:CLR20r3   问题签名01:geography.exe   问题签名02:1.0.0.0   问题签名03:525520ed   问题签名04:System.Data   问题签名05:4.0.30319.17929   问题签名06:4ffa5c76   问题签名07:2592   问题签名08:27   问题签名09:System.Data.SqlClient.Sql   操作系统版本:6.1.7600.2.0.0.256.1   区域设置ID:1032   附加信息1:0a9e   附加信息2:0a9e372d3b4ad19135b953a78882e789   附加信息3:0a9e   附加信息4:0a9e372d3b4ad19135b953a78882e789

我的连接字符串是Data Source=.\sqlexpress;Initial Catalog=geografia;Integrated Security=True

我将其更改为Data Source = (local) \ sqlexpress; Initial Catalog = geografia; Integrated Security = True但结果仍然相同。

然后我尝试在第一个数据库连接中使用try catch块捕获错误,当我运行程序时它向我显示cannot open database "geografia" requested by the login. The login failed. Login failed for user 'pcname-PC\username'.

当我发布应用程序时,我将geography.pdb作为数据文件包含在内(地理位置是我项目的名称,我不知道是否嵌入数据库)

我是编程新手,我不知道是否在应用程序中附加了数据库。

我读了一些东西,但我有点困惑。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

使用正确的服务器名称

更改连接字符串
Data Source=<serrvername>\sqlexpress;Initial Catalog=geografia;Integrated Security=True

如果您正在使用(本地)或DOT(。)这意味着它必须连接到运行应用程序的计算机。在这种情况下,如果你没有在不同的计算机上安装sql server或数据库,它将抛出此错误。

答案 1 :(得分:0)

由于您的应用程序在使用点(。)时在您的计算机上运行正常,您可以使用servername作为您的计算机名称。

此外,请尝试使用Sql Server的用户名和密码,而不是使用集成安全性。

答案 2 :(得分:-1)

您的问题是如何附加到数据库

  • 如果您的数据库附加了窗口身份验证,那么将来自 除非您在域中,否则只能使用您的计算机
  • 如果您的附加数据库具有SQL服务器身份验证,则这将来自任何计算机。

观察:使用SQL Server附加到数据库而不是数据库SQL Server文件。如果选择数据库文件,则无法使用数据库SQL Server

连接到计算机