2016-12-16 18 views
7

FROM「SELECT COUNT(*)からの結果:Dapperの:私は次のコードを持っているテーブル名

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

これは動作し、RTN変数に戻って1つのレコードを持参し、私は、変数を検査するとき、2を持っているようです

メンバー[0]はint型であり、期待値がありますが、私はその値に到達できないようですコード。これは愚かな質問のように私はそれに到達する必要がありますが、できません。最新の試みは次のとおりでした:

これは私にコンパイラエラーを与えました。コード内でこの値に到達するにはどうすればよいですか?

+2

'rtn.First()' maybe? – MiMo

+0

はい、そのトリックでした。どうもありがとうございました。あなたは私の一日を作った! – user2975847

答えて

4

使用rtn.First() - これは列挙型なので、最初の(この場合は)項目を取得する一般的な方法です。

16

しないでください!これは脆弱で、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. 
関連する問題