2013-07-19 48 views
9

Dapperを使用してクエリからDataTableを返す必要があるシナリオがあります。 クエリDapperからDataTableを返すにはどうすればよいですか?DapperからDataTableへ

DataTable dt = connection.Query( "SELECT * FROM table");

+0

Dapperはこのジョブの正しいツールではありません。 Vivek氏によると、DapperはDataSetではなくオブジェクトに直接マッピングするように設計されています。 – Chris

答えて

6

に一切利点ございませんDataSetを含むシナリオではdapperを使用します。特に、あなたの特定の例(パラメータなどがない)は、ExecuteReaderを直接使用したり、またはExecuteReaderを直接使用することは簡単です(否定的ではありません)。 IDataReader APIをdapperから公開しているdapper上のAPI - 希望する任意のコンシューマーにフィードすることができます。DataSet/DataTableが含まれています。しかし、私は実際に質問しなければなりません。は、この例をdapperで実行するにはどうすればいいですか?あなたが少なくともパラメータを扱うためにdapperを使っていたらもっと意味があるかもしれません(私は、パラメータ処理の仕方に満足しています。

+0

私はReportViewer用のclass Genericを使っています。 DapperとDynamicParametersに関する相談。 DapperのダイナミックデータはDataTableのみで動作しません。このため、DataTable。 DapperクエリでReportViewerを操作する方法がない限り、 – user2421145

+3

はい、すべての言葉です。私はそれらの多くを認識します。しかし、それは何も変わらない:それは単に現時点で明らかにシナリオ・ダッパーが目標としているものではない。 –

+0

私はDapperの動的オブジェクトをSqlBulkCopyにフィードする方法を研究していますが、IDataReader(またはIDataRecord)を動的型に追加することは非常に便利です。パラメータバインディングは、このシナリオでは単独で使用するのに十分適しています。 @ジェームスは指摘した; – James

1

hh? DapperはADO.NET上での拡張メソッドしか提供していないので、DataTablesとDataSetsを扱う必要はありません!

のDataTableとデータセットは、あなたが望むものをしている場合 - あなたはまだバニラADO.NETを使用することができます - SqlDataAdapterオブジェクト(http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.aspx)は、あなたの心が望むすべてのDataTableを与える:)

+1

私が必要とするのは、クエリーDapperのデータをReportViewerに送ることです。 Dapperでどうやったらいいですか? this.reportViewer.LocalReport.DataSources.Clear(); DataTable dt =新しいDataTable(); dt = this.inputValuesTableAdapter.GetData(); Microsoft.Reporting.WinForms.ReportDataSource rprtDTSource = new Microsoft.Reporting.WinForms.ReportDataSource(dt.TableName、dt); this.reportViewer.LocalReport.DataSources.Add(rprtDTSource); this.reportViewer.RefreshReport(); – user2421145

+0

@ user2421145 *** Dapper ***なしで試しましたか?それについての任意の解決策? – Kiquenet

関連する問題