如何在dapper中执行sql查询返回字符串

时间:2018-08-19 19:49:11

标签: asp.net-core dapper

dapper中的

.execute(sQuery,...)返回整数

 string sQuery = "SELECT FirstName FROM Customers WHERE Id = @Id";

我该如何实现以返回名字

2 个答案:

答案 0 :(得分:3)

  

Execute 是一种扩展方法,可以从任何类型为IDbConnection的对象中调用。它可以执行一次或多次执行命令,并返回受影响的行数

强调我的

执行不能用于您的要求。

使用基于Query*的电话之一来获得理想的结果

例如

string sQuery = "SELECT FirstName FROM Customers WHERE Id = @Id";

using (var connection = new SqlCeConnection("connection string")) { 
    var firstName = connection.QueryFirstOrDefault<string>(sQuery, new { Id = 1 });

    //...
}

答案 1 :(得分:3)

要使用Asp.Net Core和Dapper执行查询,请尝试将SqlConnectionQuery一起使用。

这里是完整的代码。

using Dapper;

public class CustomersController : Controller
{
    private readonly ApplicationDbContext _context;
    private readonly IConfiguration _configuration;

    public CustomersController(ApplicationDbContext context
        , IConfiguration configuration)
    {
        _context = context;
        _configuration = configuration;
    }

    // GET: Customers/Details/5
    public async Task<IActionResult> Details(int? id)
    {

        using (var connection = new SqlConnection(_configuration.GetConnectionString("DefaultConnection")))
        {
            string sQuery = "SELECT Name FROM Customer WHERE Id = @Id";
            var customer = connection.QueryFirstOrDefault<string>(sQuery, new { Id = id});
        }
        //Rest Code
    }