使用C#來連接SQL Server方式(基礎)

連接資料庫最基礎的連線來幫助我複習,希望

能幫助到剛學C#的各位,以及如果有錯誤的地方,小弟阿翔我也會

虛心接受各位的糾正。

坦白說

阿翔我本身當初自學C#要連接資料庫時,常常會被書籍搞得霧煞煞,

當時大學製作專題時,依需求要連接資料庫,東找西找猛看範本,

還是有看沒有懂( 可能是我慧根不夠吧!! 噓 ),但為了專題能順利進行

硬是直接把網路上Sample塞入程式碼中,只要能跑能跳我就很開心了

( 當時還覺得自己很厲害,其實 .... 根本是.......哈!!! ),後來專題結束後,

也沒有再回去了解當初從網路上Copy的範例,說實在的很不應該,

所以今天我想整理一下連接資料庫最基礎的連線來幫助我複習,希望

能幫助到剛學C#的各位,以及如果有錯誤的地方,小弟阿翔我也會

虛心接受各位的糾正。

            try
            {

                // step 1 . using System.Data.SqlClient;

                // step 2 . 宣告連接字串

                string Constr = @"Persist Security Info=False;Integrated Security=true;
                     Initial Catalog=AdventureWorksDW;Server=.\SQLExpress";

                // step 3 . 建立SqlConnection
                SqlConnection conn = new SqlConnection(Constr);

                // step 4 . 宣告查詢字串
                string Sqlstr = "select * from DimCustomer";

                // step 5. 建立SqlDataAdapter
                SqlDataAdapter da = new SqlDataAdapter(Sqlstr, conn);

                // step 6. 建立DataSet來儲存Table
                DataSet ds = new DataSet();
              
                // step 7. 將DataAdapter查詢之後的結果,填充至DataSet
                da.Fill(ds);                

                // step 8 . 用DataGridView1 顯示出來
                this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
               

            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }

 

在上述的Sample中,小弟我歸納為幾個步驟 :

  1. 確認連接字串
  2. 建立SqlConnection
  3. 確認查詢字串
  4. 建立SqlDataAdpater
  5. 容器來裝 ( EX : DataSet、DataTAble .... )

 

這裡有一個很重要的觀念要提一下,

上述Sample中,有人會想說:「疑!! SqlConnection 不是要 Open及Close嗎 ??」

怎麼這裡沒有使用?!

 

沒錯 !! 這中間使用了一個物件SqlDataAdapter,

這物件的特性是,會自動開啟連線以及自動關閉連線,

SqlDataAdapter da = new SqlDataAdapter(Sqlstr, conn);

new SqlDataAdapter後面,我使用了四種簽名的其中一種 :

 

public SqlDataAdapter(
	string selectCommandText,
	SqlConnection selectConnection
)

摘要:
        //     使用 System.Data.SqlClient.SqlDataAdapter.SelectCommand 和 System.Data.SqlClient.SqlConnection
        //     物件,初始化 System.Data.SqlClient.SqlDataAdapter 類別的新執行個體。
        //
        // 參數:
        //   selectCommandText:
        //     System.String,即要由 System.Data.SqlClient.SqlDataAdapter 的 System.Data.SqlClient.SqlDataAdapter.SelectCommand
        //     屬性使用的 Transact-SQL SELECT 陳述式或預存程序。
        //
        //   selectConnection:
        //     表示連接的 System.Data.SqlClient.SqlConnection。 如果您的連接字串不使用 Integrated Security
        //     = true,您可以使用 System.Data.SqlClient.SqlCredential 傳遞使用者 ID 和密碼,比起在連接字串中將使用者
        //     ID 和密碼指定為文字更安全。

 

它會開啟連線並直接執行Query(查詢字串),以及結束後會自動關閉連線,

因次就可不必使用SqlConnection.Open();  and SqlConnection.Close();

是不是很好用呢 ??!!!

 

當然這是最基礎中的基礎,這中間到處都是漏洞

往後小弟我會陸續新增相關的技術,

以及各種使用的方式。

如有錯誤歡迎各位糾正指教。

增強我的實力源自於您的糾正。

謝謝。