使用「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 概觀

留言