zoukankan      html  css  js  c++  java
  • 解决DataSet不支持System.nullable

    using System;

    using System.Data;

    using System.Collections;

    using System.Collections.Generic;

    using System.Configuration;

    using System.Reflection;

    using System.Linq;

    using System.Xml.Linq;

    namespace UserFunction

    {    

    /// <summary>    

    /// Summary description for LinqToDataTable    

    /// </summary>    

    static public  class LinqToDataTable    

    {        

    static public  DataTable ToDataTable<T>(this IEnumerable<T> varlist, CreateRowDelegate<T> fn)        

    {

                DataTable dtReturn = new DataTable();

                // column names

                PropertyInfo[] oProps = null;

                // Could add a check to verify that there is an element 0

                foreach (T rec in varlist)            

    {

                    // Use reflection to get property names, to create table, Only first time, others will follow

                    if (oProps == null)               

      {

                        oProps = ((Type)rec.GetType()).GetProperties();

                        foreach (PropertyInfo pi in oProps)                  

       {

                            Type colType = pi.PropertyType; if ((colType.IsGenericType) && (colType.GetGenericTypeDefinition() == typeof(Nullable<>)))                      

       {

                                colType = colType.GetGenericArguments()[0];

                            }

                            dtReturn.Columns.Add(new DataColumn(pi.Name, colType));

                        }

                    }

                    DataRow dr = dtReturn.NewRow(); foreach (PropertyInfo pi in oProps)               

      {

                        dr[pi.Name] = pi.GetValue(rec, null) == null ? DBNull.Value : pi.GetValue(rec, null);

                    }

                    dtReturn.Rows.Add(dr);

                }

                return (dtReturn);

            }

            public delegate object[] CreateRowDelegate<T>(T t);     } }

    /* * 示例: * var query = from ....; * DataTable dt = query.ToDataTable(rec => new object[] { query }); * */

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/hgsfhgfh.html
Copyright © 2011-2022 走看看