在 C# 中進行 SQL 插入查詢

Muhammad Maisam Abbas 2024年2月16日
  1. 使用 C# 中的簡單查詢方法進行 SQL 插入
  2. 使用 C# 中的引數化查詢方法進行 SQL 插入
在 C# 中進行 SQL 插入查詢

在本教程中,我們將討論將記錄插入到 C# 資料庫中的方法。

使用 C# 中的簡單查詢方法進行 SQL 插入

簡單的查詢方法可以使用 C# 中的 SQL 插入查詢將資料插入資料庫表中。該方法簡單易行,但不安全。此方法不能阻止我們的程式碼被 SQL 注入。以下程式碼示例向我們展示瞭如何使用 C# 中的簡單查詢方法將資料輸入資料庫表。

using System;
using System.Data.SqlClient;

namespace sql_insert {
  class Program {
    static void Main(string[] args) {
      string connectionString =
          "Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True";
      SqlConnection connection = new SqlConnection(@connectionString);
      string query = "INSERT INTO Person (Name,Salary) VALUES('Max','$1200')";
      SqlCommand command = new SqlCommand(query, connection);
      try {
        connection.Open();
        command.ExecuteNonQuery();
        Console.WriteLine("Records Inserted Successfully");
      } catch (SqlException e) {
        Console.WriteLine("Error Generated. Details: " + e.ToString());
      } finally {
        connection.Close();
      }
    }
  }
}

輸出:

Records Inserted Successfully

上面的程式碼使用 C# 中的簡單查詢方法將資料插入資料庫的 Person 表中。

SqlConnection建立與資料庫的連線。它將連線字串作為引數。

SqlCommand建立一個 SQL 命令,該命令是對 SQL Server 資料庫執行。它以 SqlConnection 物件和 SQL 查詢作為引數。

connection.open() 函式用於開啟與資料庫的連線以執行一些查詢。如果不開啟與資料庫的連線,我們將無法執行任何查詢。

最後,command.ExecuteNonQuery() 函式用於執行我們的插入查詢。command.ExecuteNonQuery() 函式返回受查詢影響的行數。如果發生錯誤,command.ExecuteNonQuery() 函式將返回 -1

執行查詢後,需要使用 connection.Close() 函式關閉連線。

使用 C# 中的引數化查詢方法進行 SQL 插入

引數化查詢方法用於使用帶有 C# 引數的 SQL insert 查詢將資料插入資料庫表中。我們在插入查詢中為欄位指定備用引數,然後將資料輸入到這些備用引數中。推薦使用此方法,因為它可以保護我們的程式碼免於 SQL 注入。以下程式碼示例向我們展示瞭如何使用 C# 中的引數化查詢方法將資料輸入資料庫表。

using System;
using System.Data.SqlClient;

namespace sql_insert {
  class Program {
    static void Main(string[] args) {
      string connectionString =
          "Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True";
      SqlConnection connection = new SqlConnection(@connectionString);
      string query = "INSERT INTO Products (Name, Salary) VALUES(@Name, @Salary)";
      SqlCommand command = new SqlCommand(query, connection);

      command.Parameters.AddWithValue("@Name", "Max");
      command.Parameters.AddWithValue("@Salary", "$1200");

      try {
        connection.Open();
        command.ExecuteNonQuery();
        Console.WriteLine("Records Inserted Successfully");
      } catch (SqlException e) {
        Console.WriteLine("Error Generated. Details: " + e.ToString());
      } finally {
        connection.Close();
      }
    }
  }
}

輸出:

Records Inserted Successfully

上面的程式碼使用 C# 中的引數化查詢方法將資料插入資料庫的 Person 表中。其餘程式碼與前面的示例非常相似。唯一的區別是這一次我們不在 insert 查詢中寫入值。我們使用 command.Parameters.AddWithValue() 函式分別輸入值。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Csharp Database