Dapper comando como DataAdapter

c# dapper sqldataadapter stored-procedures

Pregunta

Por favor, puedo convertir este método a usos Dapper?

  • "BuscarUltimasLeituras" es un procedimiento
  • "@Last" es un parámetro de procedimiento (int)

public DataTable GetLeituras ( int ultimas )
    {
        DataTable listaLeiturasRomaneio = new DataTable();
        try
        {
            _sqlConnection.Open();

            _sqlCommand = new SqlCommand();
            _sqlCommand.Connection = _sqlConnection;
            _sqlCommand.CommandText = "BuscarUltimasLeituras";
            _sqlCommand.CommandType = System.Data.CommandType.StoredProcedure;
            _sqlCommand.Parameters.Add("@Last", SqlDbType.Int).Value = ultimas;
            _sqlAdapter = new SqlDataAdapter(_sqlCommand);
            _sqlAdapter.Fill(listaLeiturasRomaneio);
        }
        catch ( SqlException )
        {
            listaLeiturasRomaneio = null;
        }
        finally
        {
            _sqlConnection.Close();
        }
        return listaLeiturasRomaneio;
    }

Respuesta aceptada

Si aún desea una DataTable , puede intentar:

var listaLeiturasRomaneio = new DataTable();
using (var reader = _sqlConnection.ExecuteReader(
    "BuscarUltimasLeituras", new { Last = ultimas },
    commandType: CommandType.StoredProcedure))
{
    listaLeiturasRomaneio.Load(reader);
}

Sin embargo, el uso más típico sería crear una class para que coincida con sus datos, entonces:

var listaLeiturasRomaneio = _sqlConnection.Query<YourType>(
    "BuscarUltimasLeituras", new { Last = ultimas },
    commandType: CommandType.StoredProcedure).AsList();

Tenga en cuenta que Dapper también es compatible con dynamic uso dynamic , pero esto generalmente es para uso casual:

var listaLeiturasRomaneio = _sqlConnection.Query(
    "BuscarUltimasLeituras", new { Last = ultimas },
    commandType: CommandType.StoredProcedure).AsList();


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué