首頁 > 軟體

使用C#連線SQL Server的詳細圖文教學

2023-09-12 18:04:03

一、提前準備好資料庫

1. 連線資料庫伺服器

這裡我使用的是SQL Server 身份驗證(也可使用windows 身份驗證)

賬戶資訊如下:

登入名:sa

密碼:mima(輸入時自動隱藏)

2. 建立資料庫和表

這裡我的資料庫資訊如下:

伺服器名:HG66MSSQLSERVER01

資料庫名:DataBase01

表名:Table_1

三個屬性分別為:ID、姓名、年齡

二、建立專案並引入名稱空間

1. 建立一個專案(這裡以控制檯應用為例)

建議建立以 .NET Framework 為框架的專案,否則可能會出現“找不到型別名“SqlConnection“”這樣的錯誤,原因為沒有使用 .NET Framework 框架的專案預設沒有引入和SQL相關的名稱空間

解決方法:【C#】找不到型別名“SqlConnection“的解決方法

2. 引入相關名稱空間

using System.Data;  // 表的名稱空間
using System.Data.SqlClient;    // 和SQL相關的名稱空間

三、使用ADO.NET存取資料庫

1. 設定連線資訊

在第一部分,已經知道了我資料庫的資訊:

伺服器名:HG66MSSQLSERVER01

登入名:sa

密碼:mima

資料庫名:DataBase01

方法一

先宣告一個SqlConnectionStringBuilder物件,再設定這個物件的屬性

// 宣告一個SqlConnectionStringBuilder物件
SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
scsb.DataSource = "HG66\MSSQLSERVER01";    // 設定資料來源伺服器,注意這裡的單斜線變雙斜線了
scsb.UserID = "sa";     // 設定使用者名稱
scsb.Password = "mima"; // 設定密碼
scsb.InitialCatalog = "DataBase01"; // 設定要存取的資料庫

方法二

先宣告一個字串,再設定字串的值,字串的值符合下面這個式子

"Data Source = (1); Database = (2); User Id = (3); Password = (4)"

(1)是資料來源伺服器

(2)是要存取的資料庫 (Database改為Initial Catalog也可以)

(3)是使用者名稱

(4)是密碼

string ConStr = "Data Source = HG66\MSSQLSERVER01; Database = DataBase01;"
	+"User Id = sa; Password = mima";

上面這種輸入使用者名稱和密碼的是使用了 SQL Server 身份驗證,如果要使用 windows 身份驗證,只需要將 “User Id = sa; Password = mima” 改為 “Trusted_Connection = SSPI” 或 “Integrated Security = SSPI”

string ConnStr = "server = HG66\MSSQLSERVER01; Database = DataBase01;"
	+"Trusted_Connection = SSPI";

2. 建立連線並開啟資料庫

使用方法一的 scsb 或方法二的 ConStr 來建立連線,建立連線後,需要通過這個連線開啟資料庫,這樣才能運算元據庫
方法一的 scsb 由於不是string型別,所以需要使用ToString()方法

// 建立連線
SqlConnection SqlCon = new SqlConnection(scsb.ToString());
// 開啟資料庫
SqlCon.Open();

方法二的 ConStr 可以直接作為引數傳進去

// 建立連線
SqlConnection SqlCon = new SqlConnection(ConStr);
// 開啟資料庫
SqlCon.Open();

3. 執行SQL查詢語句

我現有資料庫的資料如下

假設我們要查詢年齡為60的人的所有資訊,在資料庫應用中的操作如下

但是使用C#的話,①我們需要先使用一個字串來儲存SQL查詢語句,②再通過這個字串和已經開啟的資料庫來建立用於執行SQL語句的物件,此時的物件並未執行SQL查詢語句,而是已經封裝好,③於是我們執行物件的SQL查詢語句並接受結果,④最後讀取結果裡的資料並輸出

// 1、建立要執行的SQL查詢語句
string str = "select * from table_1 where 年齡 = 60";

// 2、建立用於執行SQL查詢語句的物件
SqlCommand SqlCom = new SqlCommand(str, SqlCon);// 引數1:SQL語句字串。引數2:已經開啟的資料庫

// 3、執行物件的SQL查詢語句並接受結果
SqlDataReader Sdr = SqlCom.ExecuteReader();

// 4、讀取結果的資料
while (Sdr.Read())
{
    Console.WriteLine("編號:" + Sdr["ID"].ToString());
    Console.WriteLine("姓名:" + Sdr["姓名"].ToString());
    Console.WriteLine("年齡:" + Sdr["年齡"].ToString());
}

如果所有的操作已完成,不要忘了關閉資料庫

// 關閉資料庫
SqlCon.Close();

執行程式,結果如下,查詢的結果與資料庫應用中查詢的結果相同

本程式的原始碼如下

using System;
using System.Data;  // 表的名稱空間
using System.Data.SqlClient;    // 和SQL相關的名稱空間


namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 方法一
            SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
            scsb.DataSource = "HG66\MSSQLSERVER01";    // 設定資料來源伺服器
            scsb.UserID = "sa";     // 設定使用者名稱
            scsb.Password = "mima"; // 密碼
            scsb.InitialCatalog = "DataBase01"; // 設定要存取的資料庫

            // 方法二
            string ConStr = "Data Source = HG66\MSSQLSERVER01; Database = DataBase01;"
                + "User Id = sa; Password = mima";

            // 建立連線
            SqlConnection SqlCon = new SqlConnection(ConStr);
            // 開啟資料庫
            SqlCon.Open();

            // 1、建立要執行的SQL語句
            string str = "select * from table_1 where 年齡 = 60";

            // 2、建立用於執行SQL語句的物件
            SqlCommand SqlCom = new SqlCommand(str, SqlCon);

            // 3、執行SQL語句並接受結果
            SqlDataReader Sdr = SqlCom.ExecuteReader();

            // 4、讀取結果的資料
            while (Sdr.Read())
            {
                Console.WriteLine("編號:" + Sdr["ID"].ToString());
                Console.WriteLine("姓名:" + Sdr["姓名"].ToString());
                Console.WriteLine("年齡:" + Sdr["年齡"].ToString());
            }

            // 關閉資料庫
            SqlCon.Close();


            Console.ReadKey();
        }
    }
}

總結

到此這篇關於使用C#連線SQL Server的文章就介紹到這了,更多相關C#連線SQL Server內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com