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

时间:2013-10-25 19:44:33

标签: c# sql-server stored-procedures

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

2 个答案:

答案 0 :(得分:0)

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

如果您对超级细节超级表现感兴趣,请声明一大堆“out”参数并从中加水。

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

答案 1 :(得分:0)

假设您有一个名为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();

    ......
}