我想在不更改SQL Server实例或不更改SQL Server安装的PC名称的情况下运行C#程序

时间:2013-03-21 20:55:44

标签: c# sql-server windows sql-server-2008-r2

我有C#应用程序,它使用SQL Server R2作为其数据库。该数据库位于单独的PC上,名称为SERVER。 SQL Server的实例名称也是server

我的Windows应用程序使用DataSet与数据库通信。现在我的SQL安装的PC名称将更改为另一个名称,即SERVERHP。现在我所有的编码工作都想改变我的连接字符串。还有其他简单的方法吗?

我尝试编辑主机文件,但它对我不起作用。

这是我的编码风格(http://goo.gl/FQrkp)。我正在使用DataSetDataAdapter与IDE设计人员。

我有100~150个表格。现在我无法编译所有编码。我想简单的方法来连接SQL Server数据库。

我希望有办法隐藏计算机主机名的更改

4 个答案:

答案 0 :(得分:2)

您有几个选择:

  1. 全局替换应用中连接字符串中IP地址的所有服务器名称

  2. 使用应用程序中的新服务器名称全局替换所有服务器名称

  3. 将CNAME记录添加到服务器上的DNS表中(假设您当然在同一个网络中,如果您使用的是计算机名称,那么就是这样)

  4. 在LMHOSTS文件中添加一个条目(您可以添加任意多个名称,指向相同的IP)

答案 1 :(得分:2)

据我所知,它是用于连接数据库的SqlConnection,或类似的东西。你为什么不用SqlConnectionStringBuilder?然后你可以动态地构建你需要的连接字符串。另外,要获取服务器列表,可以使用命名空间System.Data.Sql中的SqlDataSourceEnumerator。

答案 2 :(得分:1)

听起来您希望能够隐藏运行SQL Server的计算机主机名(服务器/桌面/虚拟化Windows实例)的更改。

这不是我的专业领域,但我无法想到一种方法,只涉及您的应用程序代码和计算机。

如果您控制本地DNS,则可以创建一个CNAME条目,其旧名称为" points"在新的。根据连接字符串的存储方式,您可能需要编辑它们,否则可能不需要。但您不必担心SQL Server的位置会再次发生变化,因为您始终可以编辑CNAME以指向新位置。

未来的注意事项 - 不是您当前的问题:如果您继续特别使用MS SQL Server,那么您需要小心将其移动到不是默认实例的计算机,因为那样您还需要将实例名称放在连接字符串中,这可能会迫使您再次编辑所有应用程序web.configs和app.configs。

答案 3 :(得分:1)

您是否在开发工作中使用Visual Studio 2012?我遇到了迷你SQL db VS安装(使用高级版)的冲突,并且必须修改我的Machine.config文件的ConnectionStrings部分以指向我的SQL数据库。无论出于何种原因,VS都会在Machine.Config文件中写入对迷你数据库的引用(对于你正在利用的任何.Net版本)都会引发潜在的冲突。

该文件可在%systemroot%\ Microsoft.Net \ Framework64 \ dot net version \ Config

中找到

如果您使用的是x86处理器,则Framework64文件夹名为“Framework”。