繁体   English   中英

如何使C#.net中Windows窗体应用程序的连接字符串独立于计算机?

[英]How to make the connection string of an Windows form application in C#.net,Computer independent?

当我将C#.net中的Windows窗体应用程序从一台计算机传输到另一台计算机时,每次更改数据库文件的位置时都必须更改连接字符串。

我怎样才能防止这种情况发生,以便我不必一次又一次地更改连接字符串?

如果您需要连接的服务始终在本地计算机上运行,​​则可以使用localhost作为服务器名称...

顺便说一句, localhost映射到hosts文件中的ip 127.0.0.1。

将数据库文件放在应用程序exe的相同位置,然后可以使用

Application.StartupPath()

得到的道路。

*我假设这是一个Windows窗体应用程序。

如果不提供有关您正在使用的连接字符串类型(或正在访问哪个数据库)的示例,这很棘手,但是您是否不能使用相对路径并假设该数据库相对于您的应用程序在某个地方呢?

如果你像这样设置你的连接......

<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>

...然后| DataDirectory | 默认情况下将解析为应用程序的文件夹。 但是,可以通过调用AppDomain.SetData方法来更改DataDirectory。 有关如何更改它,请参阅以下内容...

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/805bfd29-d864-4400-b353-bea13167f046

我已经展示了如何在config中设置连接字符串,但是如果在代码中进行设置,则同样适用。 如果您在代码中构建连接字符串,那么我建议您查看使用连接字符串构建器...

http://msdn.microsoft.com/en-us/library/ms254947.aspx

我当然会在您的连接字符串中假定一个文件路径,但是如果它是数据库,那么本地主机也不能正常工作吗?

数据库的位置如何更改? 是不是所有计算机/用户都可以访问的中心位置?

如果没有,您可以将连接信息存储在设置中,并创建一个表单,允许您根据需要更新这些信息。 表单可以作为安装程序的一部分或在应用程序的首次运行时启动。

有关您正在做的事情的更多信息将有助于提供真正的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM