نوشته شده توسط
Iran58
باسلام
متاسفانه این جواب را نمی خواستم می خواهم داخل خود تابع رفع خطا بشه
یعنی با این حساب قصد دارین نتیجه کوئری linq رو درقالب دیتاتیبل ........ اون هم بدون هیچ تغییر و تبدیلی به انجام برسونین ؟
.....نمی شه
ابتدا یه فایل کلاس خالی درست می کنین و این متد ایجاد دیتا تیبل رو می گذارین داخلش :
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Reflection;
namespace linq_2_dt
{
static class Class1
{
public static DataTable ToDataTable<T>(this IEnumerable<T> source)
{
PropertyInfo[] properties = typeof(T).GetProperties();
DataTable output = new DataTable();
foreach (var prop in properties)
{
output.Columns.Add(prop.Name, prop.PropertyType);
}
foreach (var item in source)
{
DataRow row = output.NewRow();
foreach (var prop in properties)
{
row[prop.Name] = prop.GetValue(item, null);
}
output.Rows.Add(row);
}
return output;
}
}
}
بعد هر کجای برنامه خواستین می تونین کوئری بزنین و بریزین داخل دیتاتیبل :
private void Form1_Load(object sender, EventArgs e) {
var qury = from q in cntxt.Tbl_infos select q;
DataTable oDataTable = new DataTable();
oDataTable =Class1.ToDataTable(qury);
dataGridView1.DataSource = oDataTable;
}