1

概念的なはい/いいえの質問があります。1 行を返すストアド プロシージャを実行しています。ExecuteScalar()変数に列の値を直接入力できるようにする方法はありますか? それとも、DataReader/DataGrid/Datasetそれを行う唯一のプロセスを使用していますか?

4

2 に答える 2

0

いいえ。1 行でも 1000 行でも、ユーザー (または MS 内部コード) は DataReader を使用します。

超微細なスーパー パフォーマンスに興味がある場合は、大量の "out" パラメータを宣言し、そこからハイドレートしてください。

しかし、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 に答える