在.NET Core中如何使用存储过程

avatar
作者
筋斗云
阅读量:0

在.NET Core中,你可以使用ADO.NET或者Entity Framework Core来执行存储过程

  1. 使用ADO.NET执行存储过程:

首先,确保已经安装了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"]}");                         }                     }                 }             }         }     } } 
  1. 使用Entity Framework Core执行存储过程:

首先,确保已经安装了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中使用存储过程了。注意根据实际情况修改代码中的连接字符串、存储过程名称、参数等。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!