2013-07-19 23 views
9

Dapper kullanarak bir sorgudan DataTable döndürmem gereken bir senaryo var. DataTable'ı bir sorgu Dapper'ından nasıl döndürebilirim?DataTable için Dapper

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

+0

Dapper bu iş için doğru araç değil. Vivek'in dediği gibi, Dapper, 'DataSet' değil, nesnelere doğrudan eşlemek üzere tasarlandı. – Chris

cevap

6

hiçbir avantajı olursa olsun içinde olacak DataSet'u içeren bir senaryo için dapper kullanarak. siz de doğrudan ExecuteReader kullanın veya bir teşhir için DbDataAdapter

Ben, ancak, açık kullanıyor olabileceğini - Ve özellikle de (tüm parametreler vb olmadan) özel bir örnek çok önemsiz (sadece objektif olumsuz anlamına gelmez) 'dir Dapper üzerinden IDataReader API'sini ortaya çıkaran dapper API'sı - bunu istediğiniz herhangi bir tüketici ile besleyebilirsiniz, DataSet/DataTable dahildir. Ama ben gerçekten şu soruyu sormalıyım: bu örneği dapper ile gerçekleştirirken point ne olurdu? En azından parametreleri işlemek için dapper kullanıyor olsaydınız daha mantıklı olabilirdi (Parametre işlemenin nasıl çalıştığından memnunum, gerçeği söylemeliyim).

+0

ReportViewer için genel çalışma sınıfını hissediyorum. Dapper ve DynamicParameters ile istişareler. Aynı şey, sadece DataTable olan Dapper'ın dinamik verileriyle çalışmaz. Bu nedenle DataTable. Dapper Query ile ReportViewer ile çalışmanın bir yolu olmadığı sürece. – user2421145

+3

Evet, hepsi kelimeler. Birçoğunu tanıyorum. Ancak hiçbir şey değişmez: Bu şu anda açıkça bir hedef stratejisi değildir. –

+0

Dapper dinamik nesnelerini SqlBulkCopy'ye nasıl besleyeceğimi araştırırken bunu anladım, bu yüzden dinamik bir türe bir IDataReader (veya IDataRecord) eklemek çok faydalı olacaktır. Parametre bağlaması, bu senaryoda kendi başına faydalı olacak kadar iyidir. – James

1

Huh? Dapper sadece ADO.NET üzerinden uzatma yöntemleri sağlar - böylece DataTables ve DataSet'lerle uğraşmanıza gerek kalmaz!

DataTable ve DataSet istediğini değilseniz - hala vanilya ADO.NET kullanabilirsiniz - size tüm datatables gönlünüzce :) verecektir SqlDataAdapter (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.aspx)

+1

İhtiyacım olan şey bir ReportViewer'ı Dapper sorgusundaki verilerle beslemektir. Dapper ile nasıl yapılır? this.reportViewer.LocalReport.DataSources.Clear(); DataTable dt = new 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 *** olmadan denediniz mi? bu konuda herhangi bir çözüm? – Kiquenet