zoukankan      html  css  js  c++  java
  • linq 查询结果转换成DataTable 方法

    转换方法代码:

    代码
     private DataTable ConvertToTable(IQueryable query)
            {
                DataTable dtList 
    = new DataTable();
                
    bool isAdd = false;
                PropertyInfo[] objProterties 
    = null;
                
    foreach (var item in query)
                {
                    
    if (!isAdd)
                    {
                        objProterties 
    = item.GetType().GetProperties();
                        
    foreach (var itemProterty in objProterties)
                        {
                            Type type 
    = null;
                            
    if (itemProterty.PropertyType != typeof(string&& itemProterty.PropertyType != typeof(int&& itemProterty.PropertyType != typeof(DateTime))
                            {
                                type 
    = typeof(string);
                            }
                            
    else
                            {
                                type 
    = itemProterty.PropertyType;
                            }
                            dtList.Columns.Add(itemProterty.Name, type);
                        }
                        isAdd 
    = true;
                    }
                    var row 
    = dtList.NewRow();
                    
    foreach (var pi in objProterties)
                    {
                        row[pi.Name] 
    = pi.GetValue(item, null);
                    }
                    dtList.Rows.Add(row);
                }

                
    return dtList;
            }


    调用方法:

    //linq查询语句
    var queryData =
                                from dv 
    in emcsDataContext.DailyVals
                                join vrb 
    in emcsDataContext.Variables on dv.VariableID equals vrb.VariableID
                                
    where dv.VariableID == variableId && dv.CollectTime >= selectDate && dv.CollectTime < selectDate.AddDays(1)
                                orderby dv.CollectTime
                                select 
    new
                                {
                                    dv.ID,
                                    dv.VariableID,
                                    dv.CollectTime,
                                    dv.VariableValue,
                                    vrb.UpLimite,
                                    vrb.LowLimite,
                                    statDate 
    = dv.CollectTime.ToShortTimeString()
                                };
    //转换
    ConvertToTable(queryData)


  • 相关阅读:
    charindex代替like并非"更快更全面"
    SQLServer2005中的几个统计技巧
    SQLServer获取Excel中所有Sheet
    SQLServer2005的查询独占模拟
    SSAS事实表和维度表数据类型必须一致
    monodevelop 出现has line endings which differ from the policy settings.的解决方法
    mono for android Main.axml
    vs2010 错误提示框:文件加载 使用 简体中文(GB2312
    在Virtual Machine上运行Hello China的方法和工具
    embed基本语法
  • 原文地址:https://www.cnblogs.com/scottckt/p/1786007.html
Copyright © 2011-2022 走看看