在 C# 中進行 SQL 插入查詢

Muhammad Maisam Abbas 2023年1月30日 2021年3月21日
  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