返回一行存储过程 C# 变量

本文关键字:存储过程 变量 一行 返回 | 更新日期: 2023-09-27 18:37:03

我有一个概念上的是/否问题。 我正在执行一个返回一行的存储过程。 是否有类似于ExecuteScalar()的方法允许我直接使用列值填充变量? 还是使用DataReader/DataGrid/Dataset唯一的过程?

返回一行存储过程 C# 变量

No. 无论是一行还是 1000,您(或 MS 内部代码)都将使用 DataReader。

如果您对超级细节的超级性能感兴趣,请声明一大堆"out"参数并从中补充水分。

但是99%的时间,它不值得头痛(即参数)

假设您有一个名为 User 的类,其中类的属性与存储过程返回的字段名称直接匹配。如果是这种情况,那么直接从 Dapper 示例

public class User
{
    public int UserID {get;set;}
    public string Account {get;set;}
    public string Pass {get;set;}
    ......
}
using(SqlConnection cnn = GetConnection())
{
    User u = cnn.Query<User>("spGetUser", new {Id = 1}, 
              commandType: CommandType.StoredProcedure).First();
    ......
}