2016年6月29日 星期三

[WPF]使用App.config來集中管理連線字串(ConnectionString)

因為內部的程式(VB6, winForm)要整個翻新,所以從ASP.net被拉回寫視窗程式
想說既然都要翻新,那乾脆整個框架一起翻新就用了M$支援度比較高的WPF
當然也不意外地要跟資料庫溝通,也就整個從Access換去SQL server

---------好,上面都不是重點, 只是緣由-----------------------------------

既然要跟資料庫結合,一定少不了「連線字串」
因為我都是ADO.net去寫,對於連線字串的依賴相當大
至於每次都要重寫但不易管理的方法就不提了,書本上都有
我這邊是寫個人偏好的集中管理 :D

1. 加入參考「System.Configuration.dll」
2. 在App.config中的<configuration>...</configuration>中加上

<connectionStrings>    
    <add name="DBconnStr" connectionString="要使用連線字串" />
</connectionStrings>

3. 在要設定連線字串的地方用以下進行代入
C#
string connStr = ConfigurationManager.ConnectionStrings["DBconnStr"].ConnectionString;
VB

Dim connStr As Stringction(Configuration.ConnfigurationManager.ConnectionStrings("DBconnStr").ConnectionString

----------------------------
如果直接 new SqlConnection, 可參考下列寫法

SqlConnection connstr = new SqlConnection(ConfigurationManager.ConnectionStrings["AL_connstr"].ConnectionString)

3 則留言:

  1. 您好,我是一個WPF的新手
    最近在實作一個client/server mode的程式(winform),所以查詢到您的文章
    我有個問題想要請問,我如果把connectionString寫在app.config中
    當我在安裝client的軟體的時候,使用者是不是就能透過開啟app.config
    發現我server端的DB資訊(ex:id,password)呢?

    回覆刪除
    回覆
    1. 是的,如果app.config會出現在clien端時,發布前記得進行加密。

      不然你就要分開寫,像是client端只是登入server取得權限用的程式,對DB的操作一律是佈署在server端的程式在跑

      刪除