私は次のコードを持っています:
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];
ただし、これによりコンパイラエラーが発生しました。コードでこの値を取得するにはどうすればよいですか?
これをしないでください!脆弱であり、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.
rtn.First()
を使用します—これは列挙であるため、最初の(この場合のみ)アイテムを取得する一般的な方法です。