private DataTable ConvertToDataTable(LinqServerModeSource data) { //GridView view = new GridView(); //view.DataSource = data; GridView gv = new GridView(); GridControl gc = new GridControl(); gc.MainView = gv; gc.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gv }); gc.DataSource = data; gc.RefreshDataSource(); DataTable dt = new DataTable(); // add the columns to the datatable GridView view = gc.FocusedView as GridView; for (int i = 0; i < view.Columns.Count; i++) { dt.Columns.Add(view.Columns[i].FieldName); } dt.Columns["Company_Last_Contact"].DataType = typeof(DateTime); dt.Columns["Company_Last_Contact"].AllowDBNull = true; for (int i = 0; i < view.DataRowCount; i++) { DataRow dr; dr = dt.NewRow(); for (int x = 0; x < view.Columns.Count; x++) { if (view.Columns[x].FieldName == "Company_Last_Contact") { try { if (view.GetRowCellValue(i, dt.Columns[x].ColumnName) != null) { dr[x] = Convert.ToDateTime(view.GetRowCellValue(i, dt.Columns[x].ColumnName)); } else { dr[x] = DBNull.Value; } } catch (Exception e) { m_EventBus.Notify(new FrmSalesConsultantEvents.Tracer() { ErrorMessage = e.Message }); dr[x] = DBNull.Value; } } else { dr[x] = view.GetRowCellValue(i, dt.Columns[x].ColumnName); } } dt.Rows.Add(dr); } gc.Dispose(); gc = null; return dt; }