在.NET Core中,你可以使用ADO.NET或者Entity Framework Core来执行存储过程
首先,确保已经安装了System.Data.SqlClient包。然后,按照以下步骤操作:
using System;
using System.Data;
using System.Data.SqlClient;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
string connectionString = "your_connection_string";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand("your_stored_procedure_name", connection))
{
command.CommandType = CommandType.StoredProcedure;
// 添加参数
command.Parameters.AddWithValue("@param1", "value1");
command.Parameters.AddWithValue("@param2", "value2");
// 执行存储过程
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
// 处理结果集
Console.WriteLine($"Column1: {reader["Column1"]}, Column2: {reader["Column2"]}");
}
}
}
}
}
}
}
首先,确保已经安装了Microsoft.EntityFrameworkCore和Microsoft.EntityFrameworkCore.SqlServer包。然后,按照以下步骤操作:
a. 在DbContext类中添加一个DbSet属性,用于表示存储过程返回的实体类型:
public DbSet<YourEntity> YourEntities { get; set; }
b. 在DbContext类中添加一个方法,用于执行存储过程:
public async Task<List<YourEntity>> ExecuteStoredProcedureAsync(string storedProcedureName, params SqlParameter[] parameters)
{
var result = await YourEntities
.FromSqlRaw($"EXEC {storedProcedureName} @param1, @param2", parameters)
.ToListAsync();
return result;
}
c. 在需要执行存储过程的地方调用这个方法:
using System.Threading.Tasks;
using Microsoft.Data.SqlClient;
// ...
string storedProcedureName = "your_stored_procedure_name";
var param1 = new SqlParameter("@param1", "value1");
var param2 = new SqlParameter("@param2", "value2");
var result = await _context.ExecuteStoredProcedureAsync(storedProcedureName, param1, param2);
这样,你就可以在.NET Core中使用存储过程了。注意根据实际情况修改代码中的连接字符串、存储过程名称、参数等。