使用「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["DefaultConnection"].ConnectionString;
using (var sc = new SqlConnection(cs))
{
    sc.Open();
    var cc = sc.CreateCommand();
    cc.CommandText = $@"INSERT INTO [Test] ([a1] ,[a2]) VALUES (@a1, @a2)";
    cc.Parameters.AddWithValue("@a1", "a1");
    cc.Parameters.AddWithValue("@a2", "a2");
    return cc.ExecuteNonQuery();
}

圖、執行結果

六、修改

範例皆使用參數型方式操作資料庫,避免Sql Injection問題。

圖、範例程式碼

  • 原始碼(C#)
var cs = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (var sc = new SqlConnection(cs))
{
    sc.Open();
    var cc = sc.CreateCommand();
    cc.CommandText = $@"UPDATE [Test] SET [a1] = @a1 WHERE [a2] = @a2";
    cc.Parameters.AddWithValue("@a1", "a3");
    cc.Parameters.AddWithValue("@a2", "a2");
    return cc.ExecuteNonQuery();
}

圖、執行結果

七、刪除

範例皆使用參數型方式操作資料庫,避免Sql Injection問題。

圖、範例程式碼

  • 原始碼(C#)
var cs = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (var sc = new SqlConnection(cs))
{
    sc.Open();
    var cc = sc.CreateCommand();
    cc.CommandText = $@"DELETE FROM [Test] WHERE [a1] = @a1";
    cc.Parameters.AddWithValue("@a1", "a3");
    return cc.ExecuteNonQuery();
}

圖、執行結果

八、相關連結

  1. 使用「Visual Studio 2019」建置一個有 Mvc 和 Web Api 架構的網站
  2. 使用「CsvHelper」讀取、寫入 CSV 檔案
  3. 好用的資料庫管理工具「SQL Server 資料庫專案」
  4. 「NLog」與「Sql Server」資料庫的完美搭配
  5. 使用「ADO.NET」 進行資料庫的讀取、新增、修改、刪除的操作
  6. 使用「Entity Framework Tools」建立資料庫關聯模型
  7. https://weitechshare.blogspot.com/2020/12/code-first.html
  8. 使用「SqlBulkCopy」進行大量資料寫入
  9. 「linqkit」動態組裝 LINQ 條件的好用套件
  10. 「Dapper」一個高效率輕量型 ORM 套件

九、參考

  1. ADO.NET 概觀

留言

這個網誌中的熱門文章

「綠界(Ecpay)」金流介接教學

使用「NLog」來記錄應用程式的大小事吧

「Selenium」前端 UI 自動化測試、爬蟲程式 最佳利器

使用「LINE Messaging API」發送 line 訊息

「Katalon Recorder」簡化測試腳本撰寫的工具

使用「Line-Notify」發送 line 訊息

使用 Visual Studio 2019 實作「RESTful API」

「Chrome Headless」隱藏瀏覽器的介面,讓爬蟲程式偷偷的執行

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