C#連接SQL Server數(shù)據(jù)庫的實例講解
C#連接數(shù)據(jù)庫:Connection對象
1.Connection對象概述
Connection對象是一個連接對象,主要功能是建立與物理數(shù)據(jù)庫的連接。其主要包括4種訪問數(shù)據(jù)庫的對象類,也可稱為數(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ù)庫的不同,引入不同的命名空間,然后通過命名空間中的Connection對象連接類連接數(shù)據(jù)庫。例如,連接SQL Server數(shù)據(jù)庫,首先要通過using System.Data.SqlClient命令引用SQL Server數(shù)據(jù)提供程序,然后才能調(diào)用空間下的SqlConnection類連接數(shù)據(jù)庫。
2.連接數(shù)據(jù)庫
以SQL Server數(shù)據(jù)庫為例,如果要連接SQL Server數(shù)據(jù)庫,必須使用System.Data.SqlClient命名空間下的SqlConnection類。所以首先要通過using System.Data.SqlClient命令引用命名空間,連接數(shù)據(jù)庫之后,通過調(diào)用SqlConnection對象的Open方法打開數(shù)據(jù)庫。通過SqlConnection對象的State屬性判斷數(shù)據(jù)庫的連接狀態(tài)。
界面:

代碼:
private void btn1_Click(object sender, EventArgs e)
{
if (txt1.Text == "")
{
MessageBox.Show("請輸入要連接的數(shù)據(jù)庫名稱!");
}
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ù)庫【" + txt1.Text.Trim() + "】已經(jīng)連接并打開!";
}
}
catch
{
MessageBox.Show("數(shù)據(jù)庫連接失敗!");
}
}
}
3.關(guān)閉連接
當(dāng)對數(shù)據(jù)庫操作完畢后,要關(guān)閉與數(shù)據(jù)庫的連接,釋放占用的資源。可以通過調(diào)用SqlConnection對象的Close方法或Dispose方法關(guān)閉與數(shù)據(jù)庫的連接。這兩種方法的主要區(qū)別是:Close方法用于關(guān)閉一個連接,而Dispose方法不僅關(guān)閉一個連接,而且還清理連接所占用的資源。當(dāng)使用Close方法關(guān)閉連接后,可以再調(diào)用Open方法打開連接,不會產(chǎn)生任何錯誤。而如果使用Dispose方法關(guān)閉連接,就不可以直接用Open方法打開連接,必須再次重新初始化連接再打開。
界面:

代碼:
SqlConnection sqlConnection; //***
/// <summary>
/// 連接數(shù)據(jù)庫
/// </summary>
private void btn1_Click_1(object sender, EventArgs e)
{
if (txt1.Text == "")
{
MessageBox.Show("請輸入數(shù)據(jù)庫名稱:");
}
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ù)庫
/// </summary>
private void btn2_Click(object sender, EventArgs e)
{
try
{
string str = "";
sqlConnection.Close(); //***
if (sqlConnection.State == ConnectionState.Closed)
{
str = "數(shù)據(jù)庫已經(jīng)成功關(guān)閉\n";
}
sqlConnection.Open(); //***
if (sqlConnection.State == ConnectionState.Open)
{
str += "數(shù)據(jù)庫已經(jīng)成功打開\n";
}
rtbox1.Text = str;
}
catch (Exception ex)
{
rtbox1.Text = ex.Message;
}
}
/// <summary>
/// 使用Dispose方法關(guān)閉連接并重新調(diào)用Open方法連接數(shù)據(jù)庫
/// </summary>
private void btn3_Click(object sender, EventArgs e)
{
try
{
sqlConnection.Dispose(); //***
sqlConnection.Open(); //***
}
catch (Exception ex)
{
rtbox1.Text = ex.Message;
}
}
以上就是本次介紹的全部知識點內(nèi)容,感謝大家的學(xué)習(xí)和對腳本之家的支持。
- c#連接sqlserver數(shù)據(jù)庫、插入數(shù)據(jù)、從數(shù)據(jù)庫獲取時間示例
- C#實現(xiàn)連接SQL Server2012數(shù)據(jù)庫并執(zhí)行SQL語句的方法
- C#編程實現(xiàn)連接SQL SERVER數(shù)據(jù)庫實例詳解
- C#連接到sql server2008數(shù)據(jù)庫的實例代碼
- C#連接SQL Server的實現(xiàn)方法
- C#使用SqlConnection連接到SQL Server的代碼示例
- C#實現(xiàn)異步連接Sql Server數(shù)據(jù)庫的方法
- 關(guān)于C#連接SQL Server時提示用戶登錄失敗的解決方法
- 使用C#連接SQL?Server的詳細(xì)圖文教程
- C#連接SQL?Sever數(shù)據(jù)庫詳細(xì)圖文教程
相關(guān)文章
c#判斷字符是否為中文的三種方法分享(正則表達(dá)式判斷)
判斷一個字符是不是漢字通常有三種方法,第一種用 ASCII 碼判斷,第二種用漢字的UNICODE編碼范圍判斷,第三種用正則表達(dá)式判斷,以下是具體方法2014-01-01
C#條件拼接Expression<Func<T, bool>>的使用
本文主要介紹了C#條件拼接Expression<Func<T, bool>>的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02

