C#中使用Dapper進(jìn)行數(shù)據(jù)庫訪問的流程步驟
1. 安裝Dapper
首先,需要通過NuGet包管理器安裝Dapper。可以使用NuGet包管理器控制臺(tái)來執(zhí)行以下命令:
Install-Package Dapper
如果使用的是.NET Core或.NET 5/6/7等較新版本,Dapper也支持這些平臺(tái)。
2. 配置數(shù)據(jù)庫連接
接下來,需要配置數(shù)據(jù)庫連接。這通常涉及到設(shè)置數(shù)據(jù)庫連接字符串,并創(chuàng)建一個(gè)到數(shù)據(jù)庫的連接對(duì)象。Dapper本身并不處理連接管理,但可以使用System.Data.SqlClient
(對(duì)于SQL Server)或其他數(shù)據(jù)庫提供程序來創(chuàng)建連接。
string connectionString = "數(shù)據(jù)庫鏈接"; using (var connection = new SqlConnection(connectionString)) { // 在這里執(zhí)行數(shù)據(jù)庫操作 }
3. 執(zhí)行SQL查詢
使用Dapper,可以執(zhí)行SQL查詢并將結(jié)果映射到對(duì)象。例如,假設(shè)有一個(gè)名為Users
的數(shù)據(jù)庫表,想要查詢所有用戶:
string sql = "SELECT * FROM Users"; using (var connection = new SqlConnection(connectionString)) { var users = connection.Query<User>(sql); // User是一個(gè)與數(shù)據(jù)庫表結(jié)構(gòu)相匹配的類 foreach (var user in users) { Console.WriteLine(user.Name); } }
在上面的代碼中,Query
方法執(zhí)行SQL查詢,并將每一行結(jié)果映射到一個(gè)User
對(duì)象。User
類應(yīng)該有一個(gè)與數(shù)據(jù)庫表中的列相匹配的屬性。
4. 執(zhí)行參數(shù)化查詢
為了防止SQL注入攻擊,應(yīng)該始終使用參數(shù)化查詢。Dapper支持命名參數(shù)和匿名對(duì)象作為參數(shù):
string sql = "SELECT * FROM Users WHERE Age > @Age"; int ageThreshold = 30; using (var connection = new SqlConnection(connectionString)) { var users = connection.Query<User>(sql, new { Age = ageThreshold }); foreach (var user in users) { Console.WriteLine(user.Name); } }
或者,可以使用命名參數(shù):
string sql = "SELECT * FROM Users WHERE Age > @age"; using (var connection = new SqlConnection(connectionString)) { var users = connection.Query<User>(sql, new { age = 30 }); foreach (var user in users) { Console.WriteLine(user.Name); } }
注意,Dapper對(duì)參數(shù)名稱是大小寫不敏感的,但最好保持一致性。
5. 執(zhí)行插入、更新和刪除操作
除了查詢之外,Dapper還支持執(zhí)行插入、更新和刪除操作??梢允褂?code>Execute方法來執(zhí)行這些操作:
string insertSql = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)"; using (var connection = new SqlConnection(connectionString)) { var rowsAffected = connection.Execute(insertSql, new { Name = "John Doe", Age = 25 }); Console.WriteLine($"Rows affected: {rowsAffected}"); }
6. 使用事務(wù)
Dapper也支持事務(wù)。可以使用BeginTransaction
方法來開始一個(gè)事務(wù),并在完成后提交或回滾:
using (var connection = new SqlConnection(connectionString)) { using (var transaction = connection.BeginTransaction()) { try { // 執(zhí)行一系列數(shù)據(jù)庫操作 // ... // 提交事務(wù) transaction.Commit(); } catch { // 回滾事務(wù) transaction.Rollback(); throw; } } }
到此這篇關(guān)于C#中使用Dapper進(jìn)行數(shù)據(jù)庫訪問的流程步驟的文章就介紹到這了,更多相關(guān)C# Dapper數(shù)據(jù)庫訪問內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c#連接sqlserver數(shù)據(jù)庫、插入數(shù)據(jù)、從數(shù)據(jù)庫獲取時(shí)間示例
這篇文章主要介紹了c#連接sqlserver數(shù)據(jù)庫、插入數(shù)據(jù)、從數(shù)據(jù)庫獲取時(shí)間示例,需要的朋友可以參考下2014-05-05Unity TextMeshPro實(shí)現(xiàn)富文本超鏈接默認(rèn)字體追加字體
這篇文章主要為大家介紹了Unity TextMeshPro實(shí)現(xiàn)富文本超鏈接默認(rèn)字體追加字體示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01C#實(shí)現(xiàn)word和pdf格式互轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了如何通過C#實(shí)現(xiàn)word和pdf格式互轉(zhuǎn)功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-10-10