Dapper:"SELECT COUNT(*)FROM TableName"的结果

use*_*847 17 dapper

我有以下代码:

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

这可以在rtn变量中恢复1条记录.当我检查变量时,它似乎有2个成员,一个是"[0]"而另一个是"原始视图".

成员[0]的类型是int并且具有期望的值,但我似乎无法在我的代码中获得该值.这似乎是一个愚蠢的问题,因为我应该能够达到它,但不能.最新的尝试如下:

int rtnCount = (int)rtn[0];
Run Code Online (Sandbox Code Playgroud)

但是这给了我一个编译器错误.如何在我的代码中获得此值?

bbs*_*nbb 37

请不要这样做!它很脆弱,并引入了一个巨大的SQL注入漏洞.如果您可以使用一行非常富有表现力的代码返回给定表的计数,并且没有漏洞,为什么要使用它?

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

// You will be happier and live longer if you avoid dynamically constructing 
// sql with string concat.
Run Code Online (Sandbox Code Playgroud)

  • 我认为“请不要这样做!” 不是指您自己的答案,而是指原始问题中的示例 (?) (2认同)
  • 哈!从来没想过:-)下次我会更清楚。 (2认同)

MiM*_*iMo 6

使用rtn.First()\xe2\x80\x94 它是一个枚举,因此这是获取其第一个(且仅在本例中)项目的一般方法。

\n