2017-12-12 15 views
0

Dapperを使用するようにこのメソッドを変換できますか?DataAdapterのようなDapperコマンド

  • "BuscarUltimasLeiturasは"
  • "@Last" の手順であるあなたはまだDataTableをしたい場合は、あなたが試みることができる手順の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

はい、次のことができます。Dapperのもdynamicの使用をサポートしていますが、これはカジュアルな使用のため通常であることを

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

は注意最も確かに – Jerodev

+0

「Dapperを使用して変換する」と言うと、正確にはどういう意味ですか?あなたはまだDataTableを返そうとしていますか?もしそうなら、あなたはなぜそれで何かをしたいのですか? –

+0

はい、Dapperにパラメータを指定してストアドプロシージャを実行し、結果を返すことができます。あなたは何をしようとしたのですか? – David

答えて

2

次のとおりです。

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(
    "BuscarUltimasLeituras", new { Last = ultimas }, 
    commandType: CommandType.StoredProcedure).AsList(); 
+0

私は、メソッドのクラスを作成することによってそれを行うことができました。 ありがとう! –

関連する問題