在.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中使用存儲過程了。注意根據實際情況修改代碼中的連接字符串、存儲過程名稱、參數等。