您好我创建了一个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作为数据文件包含在内(地理位置是我项目的名称,我不知道是否嵌入数据库)
我是编程新手,我不知道是否在应用程序中附加了数据库。
我读了一些东西,但我有点困惑。有什么想法吗?
答案 0 :(得分:0)
使用正确的服务器名称
更改连接字符串Data Source=<serrvername>\sqlexpress;Initial Catalog=geografia;Integrated Security=True
如果您正在使用(本地)或DOT(。)这意味着它必须连接到运行应用程序的计算机。在这种情况下,如果你没有在不同的计算机上安装sql server或数据库,它将抛出此错误。
答案 1 :(得分:0)
由于您的应用程序在使用点(。)时在您的计算机上运行正常,您可以使用servername作为您的计算机名称。
此外,请尝试使用Sql Server的用户名和密码,而不是使用集成安全性。
答案 2 :(得分:-1)
您的问题是如何附加到数据库
观察:使用SQL Server附加到数据库而不是数据库SQL Server文件。如果选择数据库文件,则无法使用数据库SQL Server
连接到计算机