oledbdatareader是什么?看完这篇就懂了

吉云

今儿跟大家伙儿聊聊我咋用oledbdatareader这个东西的,这玩意儿还真挺有意思的,一开始还真把我给整懵。

起初,我这不是有个项目嘛需要从一个access数据库里头捞数据。你们知道的,就喜欢捣鼓这些东西。以前也没咋接触过oledbdatareader,听这名字还挺唬人的,以为是啥高大上的东西。

先来说说我是咋连上数据库的。

oledbdatareader是什么?看完这篇就懂了

我就在网上搜搜,想看看这玩意儿到底咋用。网上那些文章,你们也懂的,说得一套一套的,什么“对象链接嵌入数据库”,什么“只读,笔直向前”,看得我脑袋都大。我就寻思,有没有啥简单粗暴点的方法?后来发现,要用这玩意儿,得整个oledbconnection,用它来建立数据源连接,说白就是搭个桥,把我的程序和数据库连起来。

这还不算完,还得整个oledbcommand,用来执行数据库命令,你可以理解成,我要从数据库里头拿啥数据,都得靠它。当然也可以用它来操作数据库,增删改查都可以搞定。

才是oledbdatareader,这玩意儿才是真正去数据库里头捞数据的。我看着网上那些代码示例,照葫芦画瓢,还真把数据库给连上。

  • 第一步,我先弄个oledbconnection,把连接字符串给填上,这字符串里头包含数据库的路径啥的,就像个门牌号一样,告诉程序数据库在哪儿。
  • 第二步,我又弄个oledbcommand,把sql查询语句写进去,就是告诉数据库我要查啥数据。
  • oledbdatareader是什么?看完这篇就懂了

就是咋用oledbdatareader把数据捞出来。

连上数据库之后,我就开始琢磨咋把数据捞出来。这oledbdatareader,它就像一个只进不退的箭头,你调用一次read()方法,它就往前走一条记录,想要回头看之前的数据都看不。而且这家伙还挺霸道的,必须单独占用一个打开的数据库连接,用完后必须关闭数据库连接,不然会报错。

我一开始没注意,直接就用oledbcommand的executereader()方法,把oledbdatareader给弄出来。然后,我就用一个while循环,每次循环都调用一下read()方法,这样就能一条一条地把数据给读出来。读出来的数据,可以用oledbdatareader的各种方法,比如getstring()、getint32()啥的,根据字段的类型,选择合适的方法就行。这些字段的类型在建立数据库表格的时候就定义好,必须使用定义好的类型来取值,不然就会报错。

这中间还遇到一些坑。

我以为这玩意儿挺简单的,结果还是遇到不少坑。比如说,有一次,我明明数据库里头有数据,可就是读不出来,一直读的是空值。后来才发现,原来是我sql语句写错,这个不报错就离谱,找问题好麻烦,少写一个字母,找半天才找出来。还有一次,程序运行着运行着就卡住,半天没反应。我查半天,才发现是有一个数据库连接没关,结果把资源给占满。这个就更离谱,我每次都是*()的,结果还是会出现连接没有关闭的情况,我只能用using语句来确保每次都能关闭。用这玩意儿,一定要细心,不然很容易掉坑里。

oledbdatareader是什么?看完这篇就懂了

最开始我用的一个旧电脑,配置不怎么然后每次用这个玩意的时候,这个程序都会卡住,要好几分钟才会有响应,我都怀疑是不是哪里有问题

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]