IList转换成DataSet

来源:互联网 发布:olap多维数据集 编辑:程序博客网 时间:2024/05/06 17:03

 ''' <summary>
    ''' 将IList转换成DataSet
    ''' </summary>
    ''' <param name="lst"></param>
    ''' <param name="typ"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function ConvertIlistToDS(ByVal lst As IList, ByVal typ As System.Type) As DataSet
        Dim obj As Object
        Dim ds As New DataSet
        Dim tbl As DataTable = ds.Tables.Add(typ.Name)
        ' Get the public properties.
        Dim myPropertyInfo As System.Reflection.PropertyInfo() = typ.GetProperties((System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Instance))
        Dim pi As System.Reflection.PropertyInfo

        For Each pi In myPropertyInfo
            tbl.Columns.Add(pi.Name, System.Type.GetType(pi.PropertyType.ToString()))
        Next

        For Each obj In lst
            Dim dr As DataRow = tbl.NewRow
            For Each pi In myPropertyInfo
                dr(pi.Name) = pi.GetValue(obj, Nothing)
            Next
            tbl.Rows.Add(dr)
        Next
        Return ds
    End Function

 

 

'调用

'SaleDetails为自定义类

MyPub.ConvertIlistToDS(SaleBufferList, GetType(SaleDetails))

原创粉丝点击