/*******************************************************************************
* Copyright(c) 2012 dongke All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:Convert.cs
* 2.功能描述:系统各种数据类型之间转换
* 编辑履历:
* 作者 日期 版本 修改内容
* 欧阳涛 2012/07/04 1.00 新建
*******************************************************************************/
using System;
using System.Collections.Generic;
using System.Data;
using System.Reflection;
using System.Windows.Forms;
namespace Dongke.IBOSS.PRD.Basics.Library
{
///
/// 系统各种数据类型之间转换
///
static public class DataConvert
{
#region ToDataTable()
///
/// 将控件的数据源转成DataTable类型
///
/// 数据源
/// 绑定的列成员
/// 转换后的DataTable数据源
public static DataTable ToDataTable(object source, string member)
{
BindingSource bindingSource = source as System.Windows.Forms.BindingSource;
if (bindingSource != null)
{
if (string.IsNullOrEmpty(bindingSource.DataMember) == false)
{
member = bindingSource.DataMember;
}
source = bindingSource.DataSource;
while (true)
{
if (source is System.Windows.Forms.BindingSource)
{
source = ((System.Windows.Forms.BindingSource)source).DataSource;
if (source is DataSet)
{
return ((DataSet)source).Relations[member].ChildTable;
}
}
else
{
break;
}
}
}
if (source is DataSet)
{
DataSet set = (DataSet)source;
DataTable table = set.Tables[member];
if (table != null)
{
return table;
}
string[] splits = member.Split('.');
if (splits.Length == 2)
{
table = set.Tables[splits[0]];
DataRelation relation = set.Relations[splits[1]];
if (relation.ParentTable == table)
{
return relation.ChildTable;
}
}
return null;
}
else if (source is DataTable)
{
return (DataTable)source;
}
else if (source is DataView)
{
return ((DataView)source).Table;
}
else
{
return null;
}
}
#endregion
#region ToObjectArray()
public static object[] ToObjectArray(T[] array)
{
if (array == null)
{
return null;
}
List