2017-12-12 18 views
0

제발,이 방법을 Dapper를 사용하여 변환 할 수 있습니까?DataAdapter와 같은 Dapper 명령

  • "BuscarUltimasLeituras는"절차
  • "@Last"절차의 PARAM은 (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; 
    } 
+2

예, 당신이 할 수있는 거의 확실히. – Jerodev

+0

"Dapper를 사용하여 변환"이라고 말하면 정확히 무엇을 의미합니까? 여전히 DataTable을 반환 하시겠습니까? 그렇다면 왜 그걸 가지고 무엇을하고 싶습니까? –

+0

예, Dapper에서 매개 변수를 사용하여 저장 프로 시저를 실행하고 결과를 반환 할 수 있습니다. 당신은 무엇을 시도 했습니까? 그리고 어디에서 붙잡 혔습니까? – David

답변

2

당신은 여전히 ​​DataTable을 원하는 경우에, 당신은 시도 할 수 있습니다 :

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

그러나 t 그는 더 일반적인 사용은, 당신의 데이터와 일치하는 class을 생성하는 것입니다 : 또한 날씬한

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

참고 dynamic 사용을 지원하지만이 캐주얼 사용을 위해 보통 :

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

메소드의 클래스를 작성하여 처리 할 수있었습니다. 감사합니다. –