当我将C#.net中的Windows窗体应用程序从一台计算机转移到另一台计算机时,每次更改数据库文件的位置时都必须更改连接字符串。
我怎样才能阻止这种情况,这样我就不必一次又一次地更改连接字符串?
答案 0 :(得分:2)
如果您需要连接的服务始终在本地计算机上运行,您可以使用localhost
作为服务器名称...
顺便说一下localhost
映射到hosts文件中的ip 127.0.0.1。
答案 1 :(得分:0)
将您的数据库文件放在应用程序exe的相同位置,然后使用
Application.StartupPath()
获得路径。
*我假设这是一个Windows窗体应用程序。
答案 2 :(得分:0)
在没有您正在使用的连接字符串类型(或您正在访问的数据库)的示例的情况下告诉它是很棘手但是您不能使用相对路径并假设数据库位于相对于您的应用程序的某个位置?
如果您将连接设置为这样......
<connectionStrings>
<add name="ConsoleApplication1.Properties.Settings.Database1ConnectionString"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
... then | DataDirectory |默认情况下将解析为应用程序的文件夹。但是,您可以通过调用AppDomain.SetData方法来更改DataDirectory。请参阅以下内容以了解如何更改它......
我已经展示了如何在config中设置连接字符串,但如果您在代码中设置连接字符串,则同样如此。如果要在代码中构建连接字符串,那么我建议您查看使用连接字符串构建器...
http://msdn.microsoft.com/en-us/library/ms254947.aspx
当然,我假设您的连接字符串中有一个文件路径,但如果它是一个数据库,那么localhost也不会工作吗?
答案 3 :(得分:0)
数据库的位置如何变化?是不是所有计算机/用户都可以访问的中心位置?
如果没有,您可以将连接信息存储在设置中,并创建一个表单,允许您根据需要更新这些信息。表单可以作为安装程序的一部分启动,也可以在应用程序首次运行时启动。
关于你正在做的事情的更多信息将有助于提出真正的解决方案。