發表文章

目前顯示的是有「Db」標籤的文章

「Dapper」一個高效率輕量型 ORM 套件

圖片
一、前言 Dapper 是一個輕量化 ORM 的套件,可以寫出類似於 ADO.NET 的簡化語法,但保有 ORM 的特性,而相較於 Code First , Dapper 較為輕巧,因此筆者會依照專案的特性使用。 二、開發環境 整合開發環境:Visual Studio 2019 語言:C# .net framework:4.6.2 三、範例資料庫 圖、範例資料庫 四、讀取 範例皆使用 參數型 方式操作資料庫,避免 Sql Injection 問題。 圖、範例程式碼 原始碼(C#) var conn = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; using (var sb = new SqlConnection(conn)) { var data = sb.Query<Test>($"SELECT [a1],[a2] FROM [Test] where [Seq] = @Seq", new { Seq = 1 }).ToList(); return data; } 圖、執行結果 五、新增 範例皆使用 參數型 方式操作資料庫,避免 Sql Injection 問題。 圖、範例程式碼 原始碼(C#) var conn = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; using (var sb = new SqlConnection(conn)) { var items = new List<Test> { new Test { a1 = "a1", a2 = "a2" }, new Test { a1 = "a11", a2 = "a22" }, }; return sb.Execute($"INSERT INTO [Test] ([a1] ...

使用「SqlBulkCopy」進行大量資料寫入

圖片
一、前言 使用 Entity Framework 產生的資料庫模型進行大量資料的寫入是相當緩慢的,所幸認識到 SqlBulkCopy 類別,它可以有效率地進行大量資料的寫入,筆者因為它減少很多等待的時間。 二、開發環境 整合開發環境:Visual Studio 2019 語言:C# .net framework:4.6.2 三、範例資料庫 圖、範例資料庫 四、範例 專案結構 和 CSV結構 圖、範例 專案結構 和 CSV結構 五、範例 ViewModel 圖、範例 ViewModel 原始碼(C#) public class TestVm { public string a1 { get; set; } public string a2 { get; set; } } 六、SqlBulkCopy 程式碼 圖、SqlBulkCopy 程式碼 原始碼(C#) //取得資料庫連線字串 var conn = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; using (var sb = new SqlBulkCopy(conn)) { sb.DestinationTableName = "Test"; sb.WriteToServer(dt, DataRowState.Added); } 圖、執行結果 七、完整程式碼 public class BulkController : ApiController { [HttpGet] public string Add() { try { //csv 轉 ViewModel var data = GetCsvData(); //ViewModel 轉 DateTable var dt = GetDataTable(data); //取得資料庫連線字串 var conn = WebConfig...

使用「Code First」進行資料庫的讀取、新增、修改、刪除的操作

圖片
一、開發環境 整合開發環境:Visual Studio 2019 語言:C# .net framework:4.6.2 二、範例資料庫 圖、範例資料庫 三、 關聯模型 圖、關聯模型 四、讀取 圖、範例程式碼 原始碼(C#) using (var db = new DbTestContext()) { var data = db.Test.Where(x => x.a1 == "1").SingleOrDefault(); return data; } 圖、執行結果 五、新增 圖、範例程式碼 原始碼(C#) using (var db = new DbTestContext()) { var newData = new Test() { a1 = "a1", a2 = "a2", }; db.Test.Add(newData); return db.SaveChanges(); } 圖、執行結果 六、修改 圖、範例程式碼 原始碼(C#) using (var db = new DbTestContext()) { var data = db.Test.Where(x => x.a1 == "a1").SingleOrDefault(); data.a1 = "a3"; return db.SaveChanges(); } 圖、執行結果 七、刪除 圖、範例程式碼 原始碼(C#) using (var db = new DbTestContext()) { var data = db.Test.Where(x => x.a1 == "a3").SingleOrDefault(); db.Test.Remove(data); return db.SaveChanges(); } 圖、執行結果 八、相關連結 使用「Visual Studio 2019」建置一個有 Mvc 和 Web Api 架構的網站 使用「CsvHelpe...

使用「Entity Framework Tools」建立資料庫關聯模型

圖片
一、前言 Entity Framework 是微軟旗下基於 ADO.NET 的資料庫物件關聯技術(Object Relational Mapping 簡稱 ORM ),筆者使用它來減少撰寫新增、刪除、修改、查詢的 SQL 語法。 二、開發環境 整合開發環境:Visual Studio 2019 語言:C# .net framework:4.6.2 三、範例資料庫 圖、範例資料庫 四、專案結構 圖、專案結構 五、操作步驟 圖、選擇Vm資料夾後 滑鼠右鍵 > 選擇 加入 > 點選 新增項目 圖、選擇 ADO.NET 實體資料模型 > 輸入 名稱 圖、選擇 來自資料庫的 Code First 圖、點選 新增連結 圖、輸入 資料庫相關資訊 > 按 確定 圖、按 下一步 圖、選擇 資料表 、 檢視 > 按 完成 圖、產生模型 六、相關連結 使用「Visual Studio 2019」建置一個有 Mvc 和 Web Api 架構的網站 使用「CsvHelper」讀取、寫入 CSV 檔案 好用的資料庫管理工具「SQL Server 資料庫專案」 「NLog」與「Sql Server」資料庫的完美搭配 使用「ADO.NET」 進行資料庫的讀取、新增、修改、刪除的操作 使用「Entity Framework Tools」建立資料庫關聯模型 https://weitechshare.blogspot.com/2020/12/code-first.html 使用「SqlBulkCopy」進行大量資料寫入 「linqkit」動態組裝 LINQ 條件的好用套件 「Dapper」一個高效率輕量型 ORM 套件 七、參考 Visual Studio 中的 Entity Framework Tools

使用「ADO.NET」 進行資料庫的讀取、新增、修改、刪除的操作

圖片
一、前言 ADO.NET 是微軟旗下用來連接 資料來源 (例如 Sql Server、XML…等),並且可以讀取、新增、修改、刪除其中資料的技術。而後 微軟以 ADO.NET 為基礎 推出 Entity Framework ,以筆者的經驗來說,新的專案較常使用 Entity Framework ,但舊的專案則使用 ADO.NET ,因此為了方便記憶而撰寫文章。 二、開發環境 整合開發環境:Visual Studio 2019 語言:C# .net framework:4.6.2 三、範例資料庫 圖、範例資料庫 四、讀取 範例皆使用 參數型 方式操作資料庫,避免 Sql Injection 問題。 圖、範例程式碼 原始碼(C#) var cs = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; using (var sc = new SqlConnection(cs)) { sc.Open(); var cc = sc.CreateCommand(); cc.CommandText = $@"SELECT [a1],[a2] FROM [Test] where [Seq] = @Seq"; cc.Parameters.AddWithValue("@Seq", "1"); var ret = string.Empty; var reader = cc.ExecuteReader(); while (reader.Read()) { ret = $"a1={reader[0]},a2={reader[1]}"; } reader.Close(); return ret; } 圖、執行結果 五、新增 範例皆使用 參數型 方式操作資料庫,避免 Sql Injection 問題。 圖、範例程式碼 原始碼(C#) var cs = WebConfigurationManager.ConnectionStrings[...

好用的資料庫管理工具「SQL Server 資料庫專案」

圖片
一、前言 專案隨著時間推進,維護的過程中會不斷的增加資料表、修改資料表的結構…等,以前筆者習慣把資料庫修改歷程 寫成 Sql,但使用了 SQL Server 資料庫專案 就不用這麼麻煩的記錄修改歷程的 Sql。 二、開發環境 整合開發環境:Visual Studio 2019 三、運用情境 圖、兩個資料庫 Test 、 Test1 ,要把 Test 的資料庫結構更新到 Test1 四、建置資料庫專案 圖、建議一個新專案 > 選擇 SQL Server 資料庫專案 圖、輸入相關資訊 五、更新資料庫 圖、 SQL Server 資料庫專案 滑鼠右鍵 > 結構描述比較 > 按下 切換來源和目標 圖、按下 選取來源 圖、按下 選取連線 圖、輸入相關資訊,選擇 來源資料庫 ,以情境來說就是 資料庫 Test 圖、按下 比較 圖、按下 更新 圖、按下 切換來源和目標 圖、按下 選取目標 圖、輸入相關資訊,選擇 目標資料庫 ,以情境來說就是 資料庫 Test1 圖、按下 比較 圖、按下 更新 圖、 更新 完成 圖、執行結果 六、相關連結 使用「Visual Studio 2019」建置一個有 Mvc 和 Web Api 架構的網站 使用「CsvHelper」讀取、寫入 CSV 檔案 好用的資料庫管理工具「SQL Server 資料庫專案」 「NLog」與「Sql Server」資料庫的完美搭配 使用「ADO.NET」 進行資料庫的讀取、新增、修改、刪除的操作 使用「Entity Framework Tools」建立資料庫關聯模型 https://weitechshare.blogspot.com/2020/12/code-first.html 使用「SqlBulkCopy」進行大量資料寫入 「linqkit」動態組裝 LINQ 條件的好用套件 「Dapper」一個高效率輕量型 ORM 套件