我是第一次开发C#windows应用程序。
Que 1 - )我开发了我的Windows应用程序,它使用SQL Server 2008使用下面的连接字符串..
Data Source=myMachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
但是当我创建我的应用程序的设置并将其安装到另一台计算机时,它会抛出无法与SQL服务器建立连接的错误..
我猜这个错误是因为我的连接字符串,因为它特定于我的电脑并将其安装到另一台电脑上将无法工作..
因此,如何创建适用于任何计算机的连接字符串..
Que 2 - 我是否需要在我的设置中附加模式文件,如何将数据库创建到其他计算机中?
这可能是愚蠢的问题,但正如我第一次这样做,我不知道这一切。
此致 马赫什
答案 0 :(得分:2)
您应该将web配置放在xml格式的app.config文件中。 并从您的代码中读取它。您可以根据机器轻松地通过记事本更改app.config文件。
如果要从setup中创建架构脚本,则必须在架构中设置架构脚本。否则,请在客户端计算机上创建数据库手册。
答案 1 :(得分:1)
如果您在开发计算机上使用过SQL Server,则必须在将使用您的应用程序的每台计算机上安装SQL Server。有几种方法可以解决此问题:
如果您的应用不需要访问中央sql服务器(例如您的应用只跟踪用户DVD),请改用SQL Server Compact Edition并将其嵌入到您的应用中
如果您的应用需要某种集中式数据,请先获取专用的SQL服务器,然后在您的应用中安装所需的一切,并将当前的myServerAddress更改为服务器的地址。请注意,服务器需要可以从远程位置访问(有些限制访问localhost!)。
Que 2 - 我是否需要将我的设置附加模式文件作为How my 数据库将被创建到其他计算机中吗?
再次,多个选项。例如,您可以将数据库导出到.sql文件(右键单击数据库浏览器中的数据库并选择选项Publish to provider
),然后使用其他计算机上的SQL管理器导入它。或者也许您可以创建一个.cs安装脚本,它将使用C#代码执行相同的工作。
根据OP的评论进行编辑:
解决方案的示例链接:
问题1:Embedding SQLServer CE in an installer 问题2:http://support.microsoft.com/kb/307283好的,但是我的当前连接字符串在这种情况下将作为DataSource工作 是我的具体机器名称
当然不是,您必须将其更改为指向SQL Server CE数据库文件。可能最好的方法是不对其进行硬编码,而是使用数据库的相对路径。它看起来像这样:
Data Source=|DataDirectory|\MyDb.sdf
,其中|DataDirectory|
指向应用程序的App_Data
文件夹。
另请注意我已附上问题的错误屏幕地图..
您的错误非常明确 - 建立与数据库的连接时出现问题。它不存在或无法从您当前的机器访问。