C#連接SQL Server數(shù)據(jù)庫(kù)的實(shí)例講解
C#連接數(shù)據(jù)庫(kù):Connection對(duì)象
1.Connection對(duì)象概述
Connection對(duì)象是一個(gè)連接對(duì)象,主要功能是建立與物理數(shù)據(jù)庫(kù)的連接。其主要包括4種訪問數(shù)據(jù)庫(kù)的對(duì)象類,也可稱為數(shù)據(jù)提供程序,分別介紹如下。
- SQL Server數(shù)據(jù)提供程序,位于System.Data.SqlClient命名空間。
- ODBC數(shù)據(jù)提供程序,位于System.Data.Odbc命名空間。
- OLEDB數(shù)據(jù)提供程序,位于System.Data.OleDb命名空間。
- Oracle數(shù)據(jù)提供程序,位于System.Data.OracleClient命名空間。
說明:根據(jù)使用數(shù)據(jù)庫(kù)的不同,引入不同的命名空間,然后通過命名空間中的Connection對(duì)象連接類連接數(shù)據(jù)庫(kù)。例如,連接SQL Server數(shù)據(jù)庫(kù),首先要通過using System.Data.SqlClient命令引用SQL Server數(shù)據(jù)提供程序,然后才能調(diào)用空間下的SqlConnection類連接數(shù)據(jù)庫(kù)。
2.連接數(shù)據(jù)庫(kù)
以SQL Server數(shù)據(jù)庫(kù)為例,如果要連接SQL Server數(shù)據(jù)庫(kù),必須使用System.Data.SqlClient命名空間下的SqlConnection類。所以首先要通過using System.Data.SqlClient命令引用命名空間,連接數(shù)據(jù)庫(kù)之后,通過調(diào)用SqlConnection對(duì)象的Open方法打開數(shù)據(jù)庫(kù)。通過SqlConnection對(duì)象的State屬性判斷數(shù)據(jù)庫(kù)的連接狀態(tài)。
界面:

代碼:
private void btn1_Click(object sender, EventArgs e) { if (txt1.Text == "") { MessageBox.Show("請(qǐng)輸入要連接的數(shù)據(jù)庫(kù)名稱!"); } else { try { string connString = "server=.;database=" + txt1.Text.Trim() + ";uid=test;pwd=test;connect timeout=5"; //** SqlConnection sqlConnection = new SqlConnection(connString); //** sqlConnection.Open(); //** if (sqlConnection.State == ConnectionState.Open) { lab2.Text = "數(shù)據(jù)庫(kù)【" + txt1.Text.Trim() + "】已經(jīng)連接并打開!"; } } catch { MessageBox.Show("數(shù)據(jù)庫(kù)連接失敗!"); } } }
3.關(guān)閉連接
當(dāng)對(duì)數(shù)據(jù)庫(kù)操作完畢后,要關(guān)閉與數(shù)據(jù)庫(kù)的連接,釋放占用的資源??梢酝ㄟ^調(diào)用SqlConnection對(duì)象的Close方法或Dispose方法關(guān)閉與數(shù)據(jù)庫(kù)的連接。這兩種方法的主要區(qū)別是:Close方法用于關(guān)閉一個(gè)連接,而Dispose方法不僅關(guān)閉一個(gè)連接,而且還清理連接所占用的資源。當(dāng)使用Close方法關(guān)閉連接后,可以再調(diào)用Open方法打開連接,不會(huì)產(chǎn)生任何錯(cuò)誤。而如果使用Dispose方法關(guān)閉連接,就不可以直接用Open方法打開連接,必須再次重新初始化連接再打開。
界面:
代碼:
SqlConnection sqlConnection; //*** /// <summary> /// 連接數(shù)據(jù)庫(kù) /// </summary> private void btn1_Click_1(object sender, EventArgs e) { if (txt1.Text == "") { MessageBox.Show("請(qǐng)輸入數(shù)據(jù)庫(kù)名稱:"); } else { try { string connString = "server=.;database=" + txt1.Text.Trim() + ";uid=test;pwd=test;connect timeout=5"; //*** sqlConnection = new SqlConnection(connString); //*** sqlConnection.Open(); //*** if (sqlConnection.State == ConnectionState.Open) { btn1.Text = "連接成功"; } } catch(Exception ex) { MessageBox.Show(ex.Message); txt1.Text = ""; } } } /// <summary> /// 使用Close方法關(guān)閉連接并重新調(diào)用Open方法連接數(shù)據(jù)庫(kù) /// </summary> private void btn2_Click(object sender, EventArgs e) { try { string str = ""; sqlConnection.Close(); //*** if (sqlConnection.State == ConnectionState.Closed) { str = "數(shù)據(jù)庫(kù)已經(jīng)成功關(guān)閉\n"; } sqlConnection.Open(); //*** if (sqlConnection.State == ConnectionState.Open) { str += "數(shù)據(jù)庫(kù)已經(jīng)成功打開\n"; } rtbox1.Text = str; } catch (Exception ex) { rtbox1.Text = ex.Message; } } /// <summary> /// 使用Dispose方法關(guān)閉連接并重新調(diào)用Open方法連接數(shù)據(jù)庫(kù) /// </summary> private void btn3_Click(object sender, EventArgs e) { try { sqlConnection.Dispose(); //*** sqlConnection.Open(); //*** } catch (Exception ex) { rtbox1.Text = ex.Message; } }
以上就是本次介紹的全部知識(shí)點(diǎn)內(nèi)容,感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
- c#連接sqlserver數(shù)據(jù)庫(kù)、插入數(shù)據(jù)、從數(shù)據(jù)庫(kù)獲取時(shí)間示例
- C#實(shí)現(xiàn)連接SQL Server2012數(shù)據(jù)庫(kù)并執(zhí)行SQL語句的方法
- C#編程實(shí)現(xiàn)連接SQL SERVER數(shù)據(jù)庫(kù)實(shí)例詳解
- C#連接到sql server2008數(shù)據(jù)庫(kù)的實(shí)例代碼
- C#連接SQL Server的實(shí)現(xiàn)方法
- C#使用SqlConnection連接到SQL Server的代碼示例
- C#實(shí)現(xiàn)異步連接Sql Server數(shù)據(jù)庫(kù)的方法
- 關(guān)于C#連接SQL Server時(shí)提示用戶登錄失敗的解決方法
- 使用C#連接SQL?Server的詳細(xì)圖文教程
- C#連接SQL?Sever數(shù)據(jù)庫(kù)詳細(xì)圖文教程
相關(guān)文章
Winform使用FTP實(shí)現(xiàn)自動(dòng)更新
這篇文章主要為大家詳細(xì)介紹了Winform使用FTP實(shí)現(xiàn)自動(dòng)更新,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07C#實(shí)現(xiàn)查殺本地與遠(yuǎn)程進(jìn)程的方法
這篇文章主要介紹了C#實(shí)現(xiàn)查殺本地與遠(yuǎn)程進(jìn)程的方法,可實(shí)現(xiàn)針對(duì)特定進(jìn)程的關(guān)閉操作,是C#進(jìn)程操作的一個(gè)典型應(yīng)用,需要的朋友可以參考下2014-12-12c# List find()方法返回值的問題說明(返回結(jié)果為對(duì)象的指針)
本篇文章主要介紹了c#中List find()方法返回值的問題說明(返回結(jié)果為對(duì)象的指針) 需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01unity 如何獲取Text組件里text內(nèi)容的長(zhǎng)度
這篇文章主要介紹了unity 獲取Text組件里text內(nèi)容的長(zhǎng)度操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04C# winfroms使用socket客戶端服務(wù)端的示例代碼
這篇文章主要為大家詳細(xì)介紹了C# winfroms使用socket客戶端服務(wù)端的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02