連接資料庫最基礎的連線來幫助我複習,希望
能幫助到剛學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中,小弟我歸納為幾個步驟 :
- 確認連接字串
- 建立SqlConnection
- 確認查詢字串
- 建立SqlDataAdpater
- 找容器來裝 ( 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();
是不是很好用呢 ??!!!
當然這是最基礎中的基礎,這中間到處都是漏洞
往後小弟我會陸續新增相關的技術,
以及各種使用的方式。
如有錯誤歡迎各位糾正指教。
增強我的實力源自於您的糾正。
謝謝。