日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

使用C#連接SQL?Server的詳細圖文教程_C#教程

作者:霍瑟夫 ? 更新時間: 2023-04-02 編程語言

一、提前準備好數據庫

1. 連接數據庫服務器

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

賬戶信息如下:

登錄名:sa

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

2. 建立數據庫和表

這里我的數據庫信息如下:

服務器名:HG66\MSSQLSERVER01

數據庫名: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. 配置連接信息

在第一部分,已經知道了我數據庫的信息:

服務器名:HG66\MSSQLSERVER01

登錄名: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();
        }
    }
}

總結

原文鏈接:https://blog.csdn.net/weixin_51585785/article/details/124671493

欄目分類
最近更新