如何更改另一台计算机上的连接字符串
本文关键字:计算机 连接 字符串 一台 何更改 | 更新日期: 2023-09-27 18:20:41
我对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="data source=PIPASO'PIPASOSERVER;initial catalog=otobus;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
附言:我在网上搜索了这个问题,发现有人建议我使用SQL Server compact。我想在不使用它的情况下解决这个问题。我有SQL Server 2012。
您应该在所有电脑中安装具有相同实例名称的SQL Server。然后,在连接字符串中,不要指定计算机名称,而是使用"local"语法:
Data Source=(local)'yourInstanceName
让用户更改连接字符串不是一个好主意。
从版本6开始的实体框架支持基于代码的配置。请参阅本文:基于代码的配置(EF6以后)
无需使用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>
本地数据库应该是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="PhoenixCacheEntities"[']]/@connectionString"
Value="Data Source=[INSTALLFOLDER]Cache'PhoenixLocal.sdf"/>
您可以看到,这里使用了xpath来确定要更改的设置。希望这能有所帮助。
不推荐
正因为你说你才刚刚开始使用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字符串时,请使用write,就像在该表单的保存按钮中一样。