如何更改另一台计算机上的连接字符串?

时间:2014-09-05 08:37:27

标签: c# sql-server connection-string

我是SQL的新手,并尝试使用SQLServer和Visual Studio构建软件。我使用InstallShield Limited Edition Project为我的程序创建了一个安装文件。我希望我的程序可以在其他计算机上使用,我希望每个用户都能够在他们的计算机上安装自己的数据库。对我来说,当用户安装程序时,程序将搜索我在创建程序时使用的连接字符串。因此,我认为这个连接字符串必须由用户更改。如何将这些属性添加到我的程序中?顺便说一句,我在我的程序中使用了模型第一实体框架。我在app.config中编写的连接字符串是:

<connectionStrings>
    <add name="otobusVTNesneleri" connectionString="metadata=res://*/OtobusVeriModeli.csdl|res://*/OtobusVeriModeli.ssdl|res://*/OtobusVeriModeli.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=PIPASO\PIPASOSERVER;initial catalog=otobus;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

P.S。我在互联网上搜索了这个问题,看到人们建议我使用SQL Server compact。我想在不使用它的情况下解决这个问题。我有SQL Server 2012.

5 个答案:

答案 0 :(得分:1)

您应该在所有PC中安装具有相同实例名称的SQL Server。然后,在连接字符串中,使用&#34; local&#34;而不是指定计算机名称。语法:

Data Source=(local)\yourInstanceName

让用户更改连接字符串不是一个好主意。

答案 1 :(得分:1)

从版本6开始的实体框架支持基于代码的配置。请参阅此文:Code-Based Configuration (EF6 onwards)

答案 2 :(得分:0)

本地数据库应该是sql compact(sdf文件)。无论如何,您需要做的是让安装程序在部署后修改app.config文件。这就是我在当前项目中所做的。在我当前的项目中,我有一个本地数据库(一个sdf文件)和一个安装程序(使用WiX创建)来部署我的应用程序。我配置安装程序以在部署应用程序后修改一些app.config设置。其中一个设置是与本地sdf数据库的连接。

要注意的一点是,在使用sdf文件时,您无法在配置文件中指定相对文件路径。您需要指定完整路径(即:d:\ .. \ db.sdf)或使用特殊文件夹名称(即| AppData | db.sdf)。 AppData将解析为可执行文件的当前路径。

在客户端上需要一个完整的SQL数据库也意味着你必须在客户端机器上安装SQL Express。您不必使用sdf文件执行此操作。

如果您决定使用WiX,您可以修改您的连接字符串,如下所示。

<util:XmlFile Id="WindowsServiceUpdateConnectionString" File="[INSTALLFOLDER]$(var.Phoenix.WindowsService.TargetFileName).config" Action="setValue"
ElementPath= "//configuration/connectionStrings/add[\[]@name=&quot;PhoenixCacheEntities&quot;[\]]/@connectionString"
Value="Data Source=[INSTALLFOLDER]Cache\PhoenixLocal.sdf"/>

您可以看到此处使用xpath来确定要更改的设置。希望这有帮助。

答案 3 :(得分:0)

不使用sql server用户名密码使用它。

<configuration>
  <connectionStrings>
     <add name="ConString" connectionString="Data Source=Trainee4-PC;Initial Catalog=Demo05-09-2014;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>

使用sql server用户名密码使用它。

<configuration>
  <connectionStrings>
     <add name="ConString" connectionString="Data Source=DENISH\SA;Initial Catalog=Demo05-09-2014;User ID=Demo;Password=Demo123" />
  </connectionStrings>
</configuration>

答案 4 :(得分:-1)

未重新提及

它只是因为你说你刚开始用c#

所以要将连接字符串写入文件:

using System.IO;//delcare it the top
File.Write("config.cfg","your connection string goes here");

从中读取:

using System.IO;//delcare it the top
string CNXSTRING = File.Read("config.cfg");

顺便说一下,您必须创建一个用户并可以键入新连接字符串的表单,假设它有一个名为txtstring的文本框,代码将成为

File.Write("config.cfg",txtstring.Text);

PS:当您要保存CNX字符串时使用写入,就像在该表单的保存按钮中一样。