在 C# 中进行 SQL 插入查询

Muhammad Maisam Abbas 2023年10月12日
  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