Konversi data hasil LINQ menjadi DataTable
Ketika menggunakan ADO, data hasil queri bisa kita olah lagi di datatable. Tapi bagaimana dengan data hasil dari LINQ? Ini menjadi masalah ketika aku ingin mengolah data hasil LINQ karena Data LINQ merupakan data bertipe enumarasi yang berbeda dengan dataset dan datatable. Salah satu cara untuk mengolah data LINQ adalah mengubah data hasil LINQ menjadi DataTable. Cara ini sangat membantu programer yang terbiasa menggunakan ADO.
'copyright(c) 2008 by Vimal Lakhera 'Converted into VB.net by Me Function LINQToDataTable(Of T)(ByVal varlist As _ System.Collections.Generic.IEnumerable(Of T)) As DataTable Dim dtHasil As New DataTable() Dim pi() As System.Reflection.PropertyInfo = Nothing For Each rec As T In varlist If pi Is Nothing Then pi = (CType(rec.GetType(), Type)).GetProperties() For Each _pi As System.Reflection.PropertyInfo In pi Dim TipeKolom As Type = _pi.PropertyType If TipeKolom.IsGenericType AndAlso _ (TipeKolom.GetGenericTypeDefinition() Is GetType(System.Nullable(Of ))) Then TipeKolom = TipeKolom.GetGenericArguments()(0) End If dtHasil.Columns.Add(New DataColumn(_pi.Name, TipeKolom)) Next End If Dim dr As DataRow = dtHasil.NewRow() For Each _pi As System.Reflection.PropertyInfo In pi If _pi.GetValue(rec, Nothing) Is Nothing Then dr(_pi.Name) = DBNull.Value Else dr(_pi.Name) = _pi.GetValue(rec, Nothing) End If Next dtHasil.Rows.Add(dr) Next Return dtHasil End Function
Contoh penggunaannya adalah sebagai berikut:
Dim hasil = From _modem In dt.MODEMs _ Select New With {_modem.ID, _modem.PLAT} Dim dta As DataTable = LINQToDataTable(hasil)
Kode aslinya menggunakan C# dapat dilihat disini
Iklan
Posted on 15 Oktober 2009, in LINQ and tagged DataTable, Konversi, LINQ, VB.net. Bookmark the permalink. 3 Komentar.
wuihh mantap nice tutor.., bro link pny u da gw ganti sesuai keinginan u boss…
saya mau tanya buku yang menerangkan tentang LINQ to XML sudah ada apa blom?….klo ada apaan nama bukunya?….
Silahkan donload ebook di http://geeks.netindonesia.net/
Cari pdf dengan judul “Perjalanan ke Desa LINQ” di tulis oleh Ronald Rajagukguk. Gratis + bhs indonesia