利用web.config檔案讀取連接字串,以ExecuteScalar讀取資料

摘要:利用web.config檔案讀取連接字串,以ExecuteScalar讀取資料

在ADO.NET一般連結字串可以直接寫在字串裡(如下方)

       SqlConnection cn = new SqlConnection();
       cn.ConnectionString = "Data Source=PC\\;Initial Catalog=DB;User ID=xxx;  Password=xxx";            

但可用web.config裡的connectionStrings來進行資料來源的讀取,但為什麼要用這個呢?根據msdn的介紹是能夠在不需要編輯個別 Web 網頁的情況下,輕鬆地變更伺服器名稱、資料庫或驗證資訊。此外,可以使用加密來保護連接字串;也就是說,方便程式開發者網站的維護以及提高上方ConnectionString暴露在外的安全性,範例如下:

1.首先要先

using System.Data.SqlClient;
using System.Configuration;

2.接著要在web.config檔中新增connectionStrings(可手動在web.config下新增或偷懶在設計界面拉個SqlDataSource並連結完成)

    <connectionStrings>
        <add name="TestConnectionString" connectionString="Data Source=xxxx;Initial Catalog=DBName;User ID=sa;Password=test"
            providerName="System.Data.SqlClient" />
    </connectionStrings>

3.最後在aspx.cs中

int count = 0;

        using (SqlConnection conn = new SqlConnection()) 
        {         
            //取得web.config檔下的ConnectionString子節點中name="TestConnectionString"
            conn.ConnectionString = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString ;
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "select count(*) from test";

            try
            {
                conn.Open();
		//ExecuteScalar為撈回資料表中的第一行第一欄的資料
                count = (int)cmd.ExecuteScalar();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

        Response.Write("table count is " + count.ToString());

 延伸文章:使用資料來源控制項時保護連接字串