C#windows应用程序中的连接字符串

时间:2012-08-23 08:51:33

标签: c# sql-server-2008

我是第一次开发C#windows应用程序。

Que 1 - )我开发了我的Windows应用程序,它使用SQL Server 2008使用下面的连接字符串..

Data Source=myMachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

但是当我创建我的应用程序的设置并将其安装到另一台计算机时,它会抛出无法与SQL服务器建立连接的错误..

我猜这个错误是因为我的连接字符串,因为它特定于我的电脑并将其安装到另一台电脑上将无法工作..

因此,如何创建适用于任何计算机的连接字符串..

Que 2 - 我是否需要在我的设置中附加模式文件,如何将数据库创建到其他计算机中?

这可能是愚蠢的问题,但正如我第一次这样做,我不知道这一切。

enter image description here

此致 马赫什

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文件夹。

  

另请注意我已附上问题的错误屏幕地图..

您的错误非常明确 - 建立与数据库的连接时出现问题。它不存在或无法从您当前的机器访问。