web-dev-qa-db-ja.com

Dapper:「SELECT COUNT(*)FROM TableName」の結果

私は次のコードを持っています:

string sql = "SELECT COUNT(*) FROM " + tableName;
var rtn = DapperConnection.Query<int>(sql);

これは機能し、rtn変数に1つのレコードを戻します。変数を調べると、2つのメンバーがあるようです。1つは「[0]」で、もう1つは「Raw View」です。

メンバー[0]はint型であり、期待される値を持っていますが、コードではその値に到達できないようです。これはばかげた質問のように思えますが、私はそれに到達できるはずですが、できません。最新の試みは次のとおりです。

int rtnCount = (int)rtn[0];

ただし、これによりコンパイラエラーが発生しました。コードでこの値を取得するにはどうすればよいですか?

16
user2975847

これをしないでください!脆弱であり、SQLインジェクションの脆弱性が大きくなります。 1行の非常に表現力豊かなコードで特定のテーブルのカウントを返すことができ、脆弱性がない場合、なぜそれをメソッドにするのですか?

DapperConnection.ExecuteScalar<int>("SELECT COUNT(*) FROM customers");

// You will be happier and live longer if you avoid dynamically constructing 
// sql with string concat.
36
bbsimonbb

rtn.First()を使用します—これは列挙であるため、最初の(この場合のみ)アイテムを取得する一般的な方法です。

4
MiMo