我正在使用sql server 2005和visual studio 2008构建一个C#windows应用程序 在客户端计算机上部署应用程序。我按此顺序执行此操作
当我尝试运行应用程序时,由于客户端计算机上的计算机名称和sql server实例名称不同而导致我失败。我在连接字符串中收到错误。我需要一种方法来提取目标计算机名和sql服务器实例,并在部署期间将其保存在我的应用程序设置中(在我的c#代码中使用,以便我可以在运行时创建连接字符串。)
要解决问题我正在做的是我在客户端的计算机上安装visual studio并编辑源代码以更改机器名和sql server实例。然后我的Windows应用程序运行。我不想以这种方式解决我的问题,而是需要一种方法,我可以在部署时设置我的参数或留给你建议一个更好的方法。
我会请你帮帮我。
答案 0 :(得分:0)
答案 1 :(得分:0)
使用SQL CE将需要大量的返工。
完整安装顺序为:
HKLM“SOFTWARE \ Microsoft \ Microsoft SQL Server \ $ {instance_name} \ MSSQLServer \ CurrentVersion“”CurrentVersion“
然后您需要安装SQL Server:
$ {installer_path} \ SQLEXPR.exe -q / norebootchk / qn reboot = ReallySuppress addlocal = all INSTANCENAME = $ {instance_name} SAPWD = $ {password} SECURITYMODE = SQL SQLBROWSERAUTOSTART = 1 SQLAUTOSTART = 1 AGTAUTOSTART = 1 ASAUTOSTART = 0 RSAUTOSTART = 0 DISABLENETWORKPROTOCOLS = 0 ERRORREPORTING = 1 SQMREPORTING = 0 ENABLERANU = 0 ADDUSERASADMIN = 1
要连接到SQL Server实例,请使用数据链接属性对话框。您需要向用户明确说明如何连接到实例。例如
如果使用。\ Instance_Name语法,其中“。” dot表示应该解决问题的客户端PC名称。也可以在连接字符串中使用它。
答案 2 :(得分:0)
因此,如果我理解正确,您已在源代码中硬编码了连接字符串。当然,你已经自费发现这是一个多么糟糕的主意。
您需要在app.config文件中保存该连接字符串。这样,当您将应用程序安装到客户时,只需要更改配置文件,您的代码就可以运行了。
在app.config中插入连接字符串:
Properties
,然后转到
Settings
页面。这将为您创建一个settings.settings
文件
项目并将为您的房产打开GUI编辑器。testConnection
)ConnectionString
类型现在,如果您打开app.config,您会注意到一个名为ConnectionStrings
的新部分,如下所示:
<connectionStrings>
<add name="ProjectName.Properties.Settings.testConnection" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\mytemp.mdb;User Id=admin;Password=;" />
</connectionStrings>
现在是时候修复你的代码一次又一次 在您拥有硬编码连接字符串的每个地方,用这样的代码替换该代码
string constring = ConfigurationManager.ConnectionStrings["ProjectName.Properties.Settings.testConnection].ConnectionString;
当我们在这里时,检查是否可以使用LocalDB version of SqlServer Express 2012来删除安装SqlServer的需要。