0

您好我创建了一个 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 作为数据文件包含在内(geography 是我的项目的名称,我不知道这是否用于嵌入数据库)

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

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

4

3 回答 3

0

由于使用 dot(.) 时您的应用程序在您的计算机上运行良好,因此您可以使用 servername 作为您的计算机名称。

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

于 2013-10-24T11:40:04.047 回答
0

使用正确的服务器名称更改连接字符串

Data Source=<serrvername>\sqlexpress;Initial Catalog=geografia;Integrated Security=True

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

于 2013-10-09T14:25:25.280 回答
-1

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

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

观察:使用 SQL 服务器而不是数据库 SQL 服务器文件附加到您的数据库。如果选择数据库文件,则无法使用数据库 SQL 服务器连接到计算机

于 2017-12-01T23:56:24.007 回答