在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語句和參數類型,以執行其他類型的批量操作,如批量更新、批量刪除等。