2013-04-06 59 views
0

我已經完成了我的第一個管理sql server 2005上某些表的c#應用程序,但我想修改它,以便它可以從文本文件讀取連接字符串。通過這樣做,我可以將我的應用程序移動到另一臺PC上,只需更改文本文件中的連接字符串,並避免代碼本身發生任何變化。我怎樣才能做到這一點?避免在代碼中編寫連接字符串

回答

0

可以從專用配置部分App.config文件來管理您的連接字符串的配置文件(app.config)中。查看here瞭解更多信息。

而不是在非標準解決方案上使用純文本文件,請參閱什麼.NET 已提供。當您移動應用程序而無需重新編譯它時,可以更改配置文件中的值,因爲配置文件正在運行時讀取。

下面是一個例子:使用ConfigurationManager.ConnectionStrings["MyConnectionString"]

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

訪問它從代碼。


如果你真的要使用一個文本文件,那麼你應該採取略有不同的方法。

  • 首先,您必須在連接字符串文件的文件系統上使用固定路徑。您可以使用硬編碼將其存儲在您的應用中 - 一個不良實踐,或使用設置或App.config文件定義文本文件路徑。
  • 你必須以編程方式讀取文件。如果是純文本,則可以使用System.IO.File.ReadAllText(filePath);,其中filePath參數是該文件的絕對路徑。爲了在編譯應用程序時需要更改路徑,可以使用配置/設置方法來定義文件的物理路徑,因爲更改它們將不需要重新編譯(如前面針對連接字符串所述)
+0

我不能使用文本文件嗎? – 2013-04-07 11:29:01

+0

@BoulisShenoda當然可以,但是int並不是真的需要。請參閱我的重訪答案,以獲取更多細節。 – 2013-04-07 11:56:37

0

您應該使用connectionStrings部分在您的應用程序/ web.config文件:

<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"]; 

更多ConfigurationMa nager here,配置文件here

+0

我不能使用文本文件嗎? – 2013-04-07 11:28:04

+0

app.config *是一個文本文件,特別是XML,並且框架內置了用於處理它的功能。相信我和其他答覆者;配置文件就是你想要的。 – 2013-04-07 11:58:28

+0

好的,非常感謝 – 2013-04-07 14:09:13

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; 
+0

我不能使用文本文件嗎? – 2013-04-07 11:28:34

+0

爲什麼不是@BoulisShenoda,那麼你應該使用流讀取器爲 – 2013-04-07 14:06:14

+0

,但app.config也是一個文本文件,除了它有一個特殊的擴展名,即.config並且也是一個xml類型 – 2013-04-07 14:06:52