Chinaunix首页 | 论坛 | 博客
  • 博客访问: 373170
  • 博文数量: 94
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 823
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-04 16:49
文章分类

全部博文(94)

文章存档

2015年(1)

2011年(1)

2010年(3)

2008年(8)

2007年(55)

2006年(26)

我的朋友

分类: 数据库开发技术

2007-08-06 21:54:56

OleDbDataReader对象可以通过OleDbCommand对象的ExecuteReader()方法获得;
通常使用方法为:
while (Reader.Read())
{
    //使用Reader.GetString()等类似的方法依次读取每个字段的值
}
 
Reader.Read()读取新的一行记录,返回bool型,读到最后一行时不成功返回false;
Reader.GetString(int 列号)读取当前记录行中指定列中的字符串,列从0开始计算,如果要读的内容为空或不是字符串型,则产生InvalidCastException异常;
Reader.GetBoolean(int 列号)读取当前记录行中指定列中的布尔值;
类似的方法还有GetByte,GetBytes,GetChar,GetDateTime,GetDecimal,GetDouble,GetFloat,GetInt16,GetInt32,GetInt64。
但我在从Excel中读取数据的时候发现读Int型总是产生异常,一定要用GetDouble方法,然后再强制转化为Int型。
 
GetData:返回请求的列序号的OleDbDataReader对象,不知道是一行的还是所有行的,没用过;
GetDataTypeName:获取源数据类型的名称,用在Excel里测试了一下,数字类型返回的是DBTYPE_R8,字符串类型返回的是DBTYPE_WVARCHAR,日期型返回是DBTYPE_DATE,所以不知道这个该怎么用;
GetEnumerator:返回一个 System.Collections.IEnumerator,可用于循环访问数据读取器中的行。不知道啥意思;
GetFieldType:获取是对象的数据类型的 System.Type。这个彩色真正的获得对象的数据类型,不过数字类型都返回Double,所以对于Int型等得用GetDouble获取值再转化类型,字符串就返回String型,日期返回DateTime型,空值也返回String型,但是用GetString获取空值时却产生异常,麻烦;
GetName:获取指定列的名称;
GetOrdinal:在给定列名称的情况下获取列序号;
GetSchemaTable:返回一个DataTable,它描述OleDbDataReader的列元数据;
GetTimeSpan:获取指定列的 System.TimeSpan 对象形式的值;
GetValue:返回object型,可以读到任何数据,包括空值(通过GetType可知其类型为System.DBNull),如果不清楚数据类型可以使用这种方法得到值,判断数据类型,然后再进行相应转化;
GetValues:获取当前行中的所有属性列,返回值通过参数返回;
IsDBNull:列中是否包含不存在的或已丢失的值;
NextResult:当读取批处理 SQL 语句的结果时,使数据读取器前进到下一个结果,还不明白。
阅读(11036) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~