我想实现这样的功能:
public static string GetResult(string sql) {
// TODO:
// result = connection.Query(....);
// return result.FirstRow().FirstChild().ToString();
}
并且这样打电话:
string myName = GetResult("SELECT userName from tb_Users WHERE ID = 1");
// or
int totalRows = Convert.ToInt32(GetResult("SELECT count(*) FROM tb_List"));
如何使用Dapper实现TODO部分?
答案 0 :(得分:3)
Dapper有ExecuteScalar[<T>]
,如果您正在阅读一列,一行,一个网格,则可以使用它。所以:
var name = connection.ExecuteScalar<string>("select 'abc'");
int count = connection.ExecuteScalar<int>("select 123");
对于所有常见的“一行,多列”场景,还有Query{First|Single}[OrDefault][<T>]
。
对您的API提出警告:仅接受一串sql(并且没有单独的参数)的任何内容都让我非常紧张您将导致SQL注入问题。