C#下数据库编程(一)

C#下数据库编程(一),第1张

C#下数据库编程(一),第2张

前言:
  曾几何时,OO语言大家族中又多了一位新成员,他有个坚强、锐利而又不失好听的名字,C#(读做C Sharp)。C#由Microsoft一手打造,更重要的是其总设计师就是Turbo Pascal、Delphi的、天才的Anders。记得在一次C#的演示会上,Anders和Microsoft的主管人员曾立下壮志,要让C#取代VC++,成为今后.NET开发的首选语言。但后来的许多负面的议论也不免让人对这个C#表示怀疑,有人说C#就是JAVA的翻版,几乎没有什么自己的特点,还有人说C#效率低下,而且和VB.NET有很大类同,根本就没有意义推出,不久就会下台并最终死亡,等等。我们也不禁怀疑起来,C#真的这么命短?真的会与JAVA没有什么大的交锋就英年早逝?

  两年多过去了,这种议论大部分已经随着事实不攻自破。C#不但没有死亡,而且有着超乎寻常的生命力,正在用他锋利的语言利剑,让世人真正领教了什么叫做系出名门、天生立志。在.NET平台开发上,C#已经成为无可争议的首选语言,更令人吃惊的是,这个人称与JAVA雷同的"仿制品"语言却不知道为什么,一步步在蚕食JAVA的地盘,令JAVA的已经开始感到不安,更让JAVA的使用者或多或少有些动摇。

  大约1年前,我接触到了C#,并且试着以我一贯审视IT界发展的眼光去审视他。通过一些日子的学习与体会,我确实感觉这个语言的不平凡性,特别是他充分利用了.NET的优势和特点,并有VS.NET的完美集成于.NET开发平台中。在我长年开发的数据库领域,我试着用C#结合ADO.NET开发了一些项目。现借这个机会,和读者们一起分享C#开发数据库的快乐。

  正文:

  如果你以前用过Visual Foxpro开发数据库项目,你就会有这种体会,VFP对数据库的操作,还是一种对数据库文件的操作,比如:

OPEN DATABASE MyDatabase &&打开数据库MyDatabase
USE MyTable &&打开数据库中的MyTable表
GO 5 &&将Cursor跳到第5条记录
REPLACE MyName WITH "杨扬" &&用"杨扬"替换第5条记录上的MyName字段
GO BOTTOM &&将Cursor跳到最后一条记录
LOCATE FOR MyName=="杨扬" &&查找并定位
IF FOUND()
? "FOUND!"
ELSE
? "NOT FOUND!"
ENDIF
USE &&关闭MyTable
CLOSE DATABASE MyDatabase &&关闭数据库MyDatabase

  这段小程序可以说是VFP中比较简单的一段小程序了,但非常有代表性。从这段程序我们可以感觉到,在VFP想操纵一个数据库中的一个表需要许多类似文件的操作,比如:打开数据库、打开表、跳转Cursor、读取字段内容、查找字段内容、关闭表、关闭数据库等等。这些操作虽然直观易懂,但十分不方便使用,而且如果同时有多个表打开,经常会出现表的轮换访问的问题,就需要不断的切换表的工作区,十分的麻烦和容易出错。最关键的是,这种操作方法不符合OO思想的精华--封装。

  如果您熟悉OO编程思想,或者曾经有OO设计经验,您可能会和我一样这样想,如果一个数据库就是一个对象,所有的操作、信息都通过方法(Method)、属性(Attribure)、事件(Event)提供出来,供开发者使用,那该多好啊。C#正是借助基于这种思想设计的数据库访问技术ADO.NET,并提供了一系列方便实用的类。应用这些数据库访问的类,您就可以轻松、准确而且是面向对象的操纵数据库中的各种数据了。

  如图,这就是C#中提供的数据库访问ADO.NET的结构图。

  从这张图中,我们可以清楚的了解到ADO.NET的数据访问技术的架构。ADO.NET支持SQL Server数据访问和OLE DB数据访问。两者相比,前者是针对SQL Server的数据库访问引擎,所以访问SQL Server数据库效率会高许多,但只支持SQL Server。后者是比较通用的数据库访问引擎,可以支持广泛的数据库,但效率不如前者。对开发者来说,如果不用到某种数据库的特性,其大体使用方法是一致的。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C#下数据库编程(一)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情