1

我有一个概念是/否的问题。我正在执行一个返回一行的存储过程。有没有类似的方法ExecuteScalar()可以让我直接用列值填充变量?还是使用DataReader/DataGrid/Dataset唯一的过程来做到这一点?

4

2 回答 2

0

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

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

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

于 2013-10-25T20:06:44.150 回答
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();

    ......
}
于 2013-10-25T20:07:26.053 回答