C# 程序执行数据库函数如何接收出参
时间: 2024-10-15 20:00:42 浏览: 25
C#在数据库查询中使用日期函数
在C#中,当你需要从数据库查询中接收结果作为函数的输出参数时,通常会通过使用ADO.NET(Active Directory Object Model for .NET)提供的数据访问技术,如SqlCommand、SqlDataReader或实体框架(Entity Framework)等。这里简单解释几种常见的方法:
1. **存储过程调用**:
如果你想从存储过程中获取结果,可以创建一个SqlCommand对象,设置其CommandText属性为存储过程名,并执行它。然后通过SqlDataReader读取返回的结果集,将每一行数据封装到类的对象实例中,作为方法的返回值。
```csharp
public List<MyObject> GetDatabaseResults(string procedureName)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(procedureName, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
var results = new List<MyObject>();
while (reader.Read())
{
MyObject obj = new MyObject();
// 从DataReader填充对象属性
obj.Field1 = reader.GetString(0);
obj.Field2 = reader.GetDecimal(1);
results.Add(obj);
}
return results;
}
}
```
2. **实体框架**:
如果你在使用EF Core,可以执行DbSet<T>.Query()方法,映射查询结果到你的实体类上。这样查询结果可以直接作为列表或其他集合类型的输出参数。
```csharp
public async Task<List<MyEntity>> FetchEntitiesAsync()
{
using (var context = new MyDbContext())
{
return await context.MyTable.ToListAsync();
}
}
```
阅读全文