在 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