java recordset转map_将DataTable对象转换为Recordset对象

using System;

using System.Data;

using ADODB;

using System.Reflection;

namespace Tao.Tool

{

///

/// 用于将ado.net的对象转换为ado的对象。

///

public sealed class ADONETtoADO

{

///

/// 将DataTable对象转换为Recordeset对象

///

/// DataTable对象

/// 转换后得到的Recordeset对象

public static Recordset ConvertDataTableToRecordset(DataTable table)

{

Recordset rs=new RecordsetClass();

//DataRow dr;

//DataRow dr;

foreach(DataColumn dc in table.Columns)

{

rs.Fields.Append(dc.ColumnName, GetDataType(dc.DataType), -1, FieldAttributeEnum.adFldIsNullable);

}

rs.Open(Missing.Value, Missing.Value, CursorTypeEnum.adOpenUnspecified,

rs.Open(Missing.Value, Missing.Value, CursorTypeEnum.adOpenUnspecified,

rs.Open(Missing.Value, Missing.Value, CursorTypeEnum.adOpenUnspecified,

LockTypeEnum.adLockUnspecified, -1);

foreach(DataRow dr in table.Rows)

foreach(DataRow dr in table.Rows)

foreach(DataRow dr in table.Rows)

{

rs.AddNew(Missing.Value, Missing.Value);object o;

for(int i=0; i

{

rs.Fields[i].Value=dr[i];

o=rs.Fields[i].Value;

}

}

return rs;

return rs;

return rs;

}

///

///

///

/// 将ADO.NET的数据类型转换为ADO的数据类型

///

/// ADO.NET的数据类型

/// ADO的数据类型

public static DataTypeEnum GetDataType(Type dataType)

{

switch(dataType.ToString())

{

case "System.Boolean":  return DataTypeEnum.adBoolean;

case "System.Byte":              return DataTypeEnum.adUnsignedTinyInt;

case "System.Char":             return DataTypeEnum.adChar;

case "System.DateTime":return DataTypeEnum.adDate;

case "System.Decimal":  return DataTypeEnum.adDecimal;

case "System.Double":   return DataTypeEnum.adDouble;

case "System.Int16":             return DataTypeEnum.adSmallInt;

case "System.Int32":             return DataTypeEnum.adInteger;

case "System.Int64":             return DataTypeEnum.adBigInt;

case "System.SByte":            return DataTypeEnum.adTinyInt;

case "System.Single":     return DataTypeEnum.adSingle;

case "System.String":     return DataTypeEnum.adVarChar;

//case "TimeSpan":return DataTypeEnum.

case "System.UInt16":   return DataTypeEnum.adUnsignedSmallInt;

case "System.UInt32":   return DataTypeEnum.adUnsignedInt;

case "System.UInt64":   return DataTypeEnum.adUnsignedBigInt;

default:throw(new KitsClasses.MyException("没有对应的数据类型"));

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值