避免在代码中编写连接字符串

时间:2013-04-06 14:08:46

标签: entity-framework-4

我已经完成了我在sql server 2005上管理一些表的第一个c#应用程序,但我想修改它以便它可以从文本文件中读取连接字符串。通过这样做,我可以通过仅更改文本文件中的连接字符串将我的应用程序移动到另一台PC,并避免代码本身的任何更改。我怎么能这样做?

4 个答案:

答案 0 :(得分:0)

查看System.Configuration(http://msdn.microsoft.com/en-us/library/system.configuration.aspx)。有一些内置的方法可以读取配置文件(App.Config)

答案 1 :(得分:0)

您可以通过App.config文件中的专用 配置部分管理连接字符串。查看here以获取更多相关信息。

不要在非标准解决方案上使用纯文本文件,而是查看.NET 已经提供的内容。您可以在移动应用程序时更改配置文件中的值,而无需重新编译,因为正在运行时读取配置。

以下是一个例子:

<configuration>
    <connectionStrings>
        <add name="MyConnectionString" 
             connectionString="Data Source=.;Initial Catalog=MyDatabaseName;IntegratedSecurity=True" 
             providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

使用ConfigurationManager.ConnectionStrings["MyConnectionString"]从代码访问它。


如果你真的必须使用文本文件,那么你应该采取稍微不同的方法。

  • 首先,您必须在文件系统上使用固定路径作为连接字符串文件。您可以在应用中硬编码 - BAD PRACTICE ,或使用设置或App.config文件来定义文本文件路径。
  • 您必须以编程方式读取文件。如果是纯文本,则可以使用System.IO.File.ReadAllText(filePath);,其中filePath参数是文件的绝对路径。为了在编译应用程序时需要更改路径,您可以使用配置/设置方法来定义文件的物理路径,因为更改它们不需要重新编译(如前面针对连接字符串所述)

答案 2 :(得分:0)

您应该使用app / web.config文件中的connectionStrings部分:

  <connectionStrings>
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-EditorTemplateCollectiosns-20130404170435;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-EditorTemplateCollectiosns-20130404170435.mdf" />
  </connectionStrings>

然后,当您想要在代码中访问它时,请执行以下操作:

var connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"];

有关ConfigurationManager here的更多信息,请参阅配置文件here

答案 3 :(得分:0)

如果您正在开发桌面应用程序,则优先选择的地方是app.config

<connectionStrings>
    <add name="TailorShop.Properties.Settings.TailorShopConnectionString" connectionString="Data Source=.\sqlexpress;Initial Catalog=TailorShop;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

请注意此处的连接名称,因为它在属性中定义(双击项目解决方案资源管理器中的属性节点并转到设置) 然后你可以在那里添加你的连接字符串。之后你会看到如上所示;
现在,为了访问它,您可以在代码中执行此操作;

Settings.Default.TailorShopConnectionString

为了使用此代码,您必须添加引用,例如yourprojectname.properties;

using TailorShop.Properties;