After a long struggle I find out the way to convert a Linq Query resultset to DataTable object. The attached source code shows how to do it.
After a long struggle I find out the way to convert a Linq Query resultset to DataTable object. The attached source code shows how to do it. I am sharing this article with my developer friends and make their life easier.
Here are two samples.
Sample I:
I created a public method called LINQToDataTable as following:
public DataTable LINQToDataTable<T>(IEnumerable<T> varlist){ DataTable dtReturn = new DataTable(); // column names PropertyInfo[] oProps = null;
---------------------------------------------------------------
Example: To use this method, just use the following code sample:
var vrCountry = from country in objEmpDataContext.CountryMaster select new {country.CountryID,country.CountryName};
DataTable dt = LINQToDataTable(vrCountry);
Sample II
Here is my second method:
public DataTable ToDataTable(System.Data.Linq.DataContext ctx, object query){ if (query == null) { throw new ArgumentNullException("query"); } IDbCommand cmd = ctx.GetCommand(query as IQueryable); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = (SqlCommand)cmd; DataTable dt = new DataTable("sd"); try { cmd.Connection.Open(); adapter.FillSchema(dt, SchemaType.Source); adapter.Fill(dt); } finally { cmd.Connection.Close(); } return dt;}
DataTable dt = LINQToDataTable(objEmpDataContext,vrCountry);
Pro WPF: Windows Presentation Foundation in .NET 3.0