在C#中,使用SqlHelper类进行批量操作可以提高性能并减少数据库交互次数。以下是一个简单的示例,展示了如何使用SqlHelper类执行批量插入操作:
首先,确保已经安装了SqlHelper库。如果没有安装,可以使用NuGet包管理器安装:
Install-Package SqlHelper
接下来,创建一个SqlHelper
类,用于封装数据库操作:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;
public class SqlHelper
{
private string _connectionString;
public SqlHelper(string connectionString)
{
_connectionString = connectionString;
}
public int ExecuteNonQuery(string sql, SqlParameter[] parameters = null)
{
using (SqlConnection connection = new SqlConnection(_connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(sql, connection))
{
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
return command.ExecuteNonQuery();
}
}
}
}
现在,我们可以使用SqlHelper
类执行批量插入操作。以下是一个示例:
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Text;
public class Program
{
public static void Main()
{
string connectionString = "your_connection_string_here";
SqlHelper sqlHelper = new SqlHelper(connectionString);
List<Employee> employees = new List<Employee>
{
new Employee { Name = "John Doe", Age = 30 },
new Employee { Name = "Jane Smith", Age = 28 },
new Employee { Name = "Mike Johnson", Age = 35 }
};
string sql = "INSERT INTO Employees (Name, Age) VALUES (@Name, @Age)";
SqlParameter[] parameters = employees.Select(e => new SqlParameter("@Name", e.Name)).Concat(employees.Select(e => new SqlParameter("@Age", e.Age))).ToArray();
int result = sqlHelper.ExecuteNonQuery(sql, parameters);
Console.WriteLine($"Inserted {result} rows.");
}
}
public class Employee
{
public string Name { get; set; }
public int Age { get; set; }
}
在这个示例中,我们首先创建了一个SqlHelper
实例,然后创建了一个包含员工信息的列表。接着,我们构建了一个批量插入操作的SQL语句,并使用SqlParameter
数组存储参数。最后,我们调用ExecuteNonQuery
方法执行批量插入操作,并输出插入的行数。
请注意,这个示例仅展示了批量插入操作。你可以根据需要修改SQL语句和参数类型,以执行其他类型的批量操作,如批量更新、批量删除等。