I'm using Dapper 2.0.35, MS SQL Server 14.0.1. I'm getting SQL Exception when I run the following code:
string sortField = "Id";
switch (sortBy)
{
case "city":
sortField = "City";
break;
case "state":
sortField = "State";
break;
case "county":
sortField = "County";
break;
case "country":
sortField = "Country";
break;
default:
break;
}
// Get all customers based on the filter criteria
string sortOrder = sortDesc == true ? "DESC" : "ASC";
int offsetRows = pageSize * (pageNumber - 1);
var parameters = new
{
SortField = sortField,
SortOrder = sortOrder,
OffsetRows = offsetRows,
PageSize = pageSize,
};
// Execute!
var sql = "SELECT * FROM Customer ORDER BY @SortField @SortOrder OFFSET @OffsetRows ROWS FETCH NEXT @PageSize ROWS ONLY";
var result = (await connection.QueryAsync<Customer>(sql, parameters)).AsList();
It seems to me that that is a valid SQL query. Exception said incorrect syntax near @SortOrder, but where did I do wrong? I tested the following query (which is similar to my code?) in SQL, ran just fine:
SELECT * FROM Customer ORDER BY County ASC OFFSET 0 ROWS FETCH NEXT 25 ROWS ONLY
Where did I do wrong?