求一方法将linq查询出的结果IQueryable类型 转换为DataTable类型
如下:
public static IQueryable<Teachers> List(int depID,string teacherName)
{
KymisDataContext ky = new KymisDataContext(); IQueryable<Teachers> teacherList; teacherList = from teacher in ky.Teachers
where (teacher.DepID == depID || depID == 0)
&& (teacher.TeacherName.Contains(teacherName) || teacherName == "")
select teacher;
return teacherList;
}ss=list(depid,tname);DataTable dt=new DataTable();
dt=ConvertToDataTable(ss);现在求方法ConvertToDataTable 谢谢各位前辈赐教!
如下:
public static IQueryable<Teachers> List(int depID,string teacherName)
{
KymisDataContext ky = new KymisDataContext(); IQueryable<Teachers> teacherList; teacherList = from teacher in ky.Teachers
where (teacher.DepID == depID || depID == 0)
&& (teacher.TeacherName.Contains(teacherName) || teacherName == "")
select teacher;
return teacherList;
}ss=list(depid,tname);DataTable dt=new DataTable();
dt=ConvertToDataTable(ss);现在求方法ConvertToDataTable 谢谢各位前辈赐教!
解决方案 »
- gridview中rowcreated事件里我想从模板列中找到一个label
- 在WebService下为什么HttpContent是Null,如何解决?
- 如何Sharepoint 2003的WindowS验证改为Forms验证
- 请教高手:分页显示+数据编辑,不知道怎么处理了,请教高手!!~
- 在用VWD2005时发现的一个怪问题
- 急,使用Web Parts后,如何在前台显示对控件的改动。。!
- 立即结贴,为什么我的VSS在选定SRCSAFE.ini文件后总是报'um.dat may be corrupt'的错误
- asp.net项目开发,欢迎有兴趣的发email索取项目说明并报价
- 自定义控件问题,急需帮助
- 急急急,帮我解决DATAGRID的问题
- 如何实现在GridView中增加记录?
- 如何更改数据库排充规则?说白了就是中文数据库要导到英文数据库
{
var dataTable = new DataTable();
foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(typeof(T))) {
dataTable.Columns.Add(pd.Name, pd.PropertyType);
}
foreach (T item in enumerable) {
var Row = dataTable.NewRow();
foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(typeof(T))) {
Row[pd.Name] = pd.GetValue(item);
}
dataTable.Rows.Add(Row);
}
return dataTable;}这个方法编译不能通过呀 试了下又不会改呢 请教高手帮忙看看
public static class test
{
public static DataTable ConvertToDataTable(this IEnumerable enumerable)
{
var dataTable = new DataTable();
foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(enumerable.GetType()))
{
dataTable.Columns.Add(pd.Name, pd.PropertyType);
}
foreach (var item in enumerable)
{
var Row = dataTable.NewRow(); foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(enumerable.GetType()))
{
Row[dp.Name] = dp.GetValue(item);
}
dataTable.Rows.Add(Row);
}
return dataTable;
}
}
调用时 DataTable dt = ss.ConvertToDataTable();
直接
var query = from a in dtTmp.AsEnumerable() select a;
DataTable dt = query.CopyToDataTable();
即可,不需要其他转换。
大哥,你这个CopyToDataTable()属性没有啊