Después de mucho trabajar ya dimos con la contestación de esta dificultad que agunos usuarios de este espacio han tenido. Si tienes alguna información que compartir no dejes de aportar tu información.
Solución:
O puedes usar ExecuteScalarAsync
o Single()
con ExecuteScalarAsync
puede recuperar un solo valor de la base de datos usando Dapper.
short status;
using (var sqlConnection = new SqlConnection(connectionString))
var parameters = new DynamicParameters();
parameters.Add("@ID", ID, DbType.Int32, ParameterDirection.Input);
await sqlConnection.OpenAsync();
status = await sqlConnection.ExecuteScalarAsync("SELECT [StatusID] FROM [MyTable] WHERE [ID] = @ID", parameters, commandTimeout: _sqlCommandTimeoutInSeconds);
Single()
se puede usar de esta manera
short status;
using (var sqlConnection = new SqlConnection(connectionString))
var parameters = new DynamicParameters();
parameters.Add("@ID", ID, DbType.Int32, ParameterDirection.Input);
await sqlConnection.OpenAsync();
status = await sqlConnection.QueryAsync("SELECT [StatusID] FROM [MyTable] WHERE [ID] = @ID", parameters, commandTimeout: _sqlCommandTimeoutInSeconds).Single();
FYI, Dapper ahora ha agregado ambos QuerySingle
y QuerySingleAsync
así como sus correspondientes OrDefault
variantes… uso para QuerySingleOrDefaultAsync
es:
await connection.QuerySingleOrDefaultAsync(sql);
Deberías usar ExecuteScalar
:
status = await sqlConnection.ExecuteScalarAsync("SELECT [StatusID] FROM [MyTable] WHERE [ID] = @ID", parameters, commandTimeout: _sqlCommandTimeoutInSeconds)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)