基于C.NET的Access数据库创建与访问.docx

上传人:知****量 文档编号:28100000 上传时间:2022-07-26 格式:DOCX 页数:11 大小:15.71KB
返回 下载 相关 举报
基于C.NET的Access数据库创建与访问.docx_第1页
第1页 / 共11页
基于C.NET的Access数据库创建与访问.docx_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《基于C.NET的Access数据库创建与访问.docx》由会员分享,可在线阅读,更多相关《基于C.NET的Access数据库创建与访问.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于C#.NET的Access数据库创建与访问 时间: 2011-04-18 来源: 论文在线摘要:C#是用于.NET开发的一种语言,并且是唯一为.NET Framework设计的语言,ADO是微软极力推荐使用的最新的数据库访问技术,Access数据库是用户通常选择的方便易用的数据库,具有广泛的应用基础。关键词:C#;Access数据库;ADO;ADOX一、引言在程序开发过程中,有时需要面对这样一个问题:如何让用户在程序运行过程中动态地建立自己所需的数据库和表以提高程序的灵活性呢?在程序运行过程中建立自己所需的数据库和表,其本质就是用代码(或者说通过编程)来建立数据库和表。众所周知,在Foxp

2、ro或ASP编程中,这是很容易的一件事件。那么在C#.NET数据库编程中又是怎样来操作的呢?如果使用DAO(数据访问对象)作为数据库访问技术,在微软的MFC类库中提供了相关的DAO类(CDaoDatabase类和CDaoTableDef类),通过定义这些类的对象并调用相应的成员函数就可以实现Access数据库和表的动态创建。但是,使用DAO数据库接口相当麻烦,要用到很多API,而ADO(ActiveX数据对象)是微软极力推荐使用的最新的数据库访问技术,它已经成为目前数据库开发的主流。因此,针对ADO数据库访问技术,如何实现数据库和表的创建,就成为编程人员较为关心的一项技术,将给出利用C#.NE

3、T创建Access数据库并进行数据访问的方法。二、ADO创建数据库技术ADO.NET的名称起源于ADO(ActiveX Data Objects),这是一个广泛的类组,ADO.NET是一组向.NET程序员公开数据访问服务的类。ADO.NET为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、XML和应用程序数据的访问,因此是.NET Framework中不可缺少的一部分。ADO.NET是用于数据访问的.NET Framework API,它提供的强大功能和易用性是以前的数据访问解决方案所无法匹敌的。ADOX是ADO Extensions for Data Definition

4、 Languageand Security,是微软对ADO技术的扩展,使用它可以操作数据库的结构。ADOX是对ADO对象和编程模型的扩展,它将ADO扩展为包括创建、修改和删除模式对象,如表格和过程。它是一个COM组件,估计以后在ADO.NET中会增加ADOX的一些功能。在Visual C#.NET中,使用ADO开发数据库应用程序时,我们要引用对象库“Microsoft ActiveX Data Objects 2.8 Library”,简称为ADO,它是C#.NET数据库最核心的对象群,也是C#.NET数据库开发人员经常所引用的对象库,在VisualStudio 2005中可以看到它的各种版本

5、,从2.0版到2.8版都有,很多人对它已经很熟悉,在此不再详细介绍。如果要在程序运行过程中创建数据库和表,还要引用对象库“MicrosoftADO Ext.2.8 for DDL and Security”,简称为ADOX。ADOX常用方法有:Append(包括Columns、Groups、Indexes、Keys、Procedures、Tables、Users、Views)、Create(创建新的目录)、Delete(删除集合中的对象)、Refresh(更新集合中的对象)等等。三、数据库访问类和对象总的来说,可以把ADO.NET用于数据库访问的类分为.NET数据提供者对象和数据库用户对象。3

6、.1 提供者对象.NET框架包括了4种数据提供者,SQL Server.NET提供者、Oracle.NET提供者、OLEDB.NET提供者、ODBC.NET提供者,分别用于不同数据库标准。对于每种数据提供者,包括了如下对象。(1)数据库连接对象(Connection)数据库连接对象是一个与数据库进行连接的对象,包含着与数据源创建连接的信息。用于SQL Server.NET提供者的数据库连接对象是SqlConnection,用于Oracle.NET提供者的数据库连接对象就是OracleConnection,用于OLEDB.NET提供者的数据库连接对象就是OleDbConnection,用于ODB

7、C.NET提供者的数据库连接对象是OdbcConnection。(2)数据库命令对象(Command)可以使用此对象向数据源发出命令,对于不同的数据提供者,该对象的名称也不同,用于OLEDB.NET提供者的命令对象是OleDbCommand。(3)命令构造对象(CommandBuilde)此对象用于构建SQL命令,在基于单一表查询的对象中进行数据修改,用于OLEDB.NET提供者的命令对象OleDbCommandBuilder。(4)数据读取对象(DataReade)这是一个快速而易用的对象,可以从数据源中读取仅能前向和只读的数据流。对于简单的读取数据来说,此对象的性能最好。用于OLEDB.N

8、ET提供者的数据读取对象是OleDbDataReader。(5)数据适配器对象(DataAdapte)这是一个通用的类,可以执行针对数据源的各种操作,包括更新变动的数据,填充DataSet对象,该对象取得数据并且在数据与数据集之间建立一座桥梁。用于OLEDB.NET提供者的数据读取对象是OleDbDataAdapter。3.2 用户对象数据库用户对象用于定义ADO.NET的断开的、客户端的对象,它们与.NET数据提供者不相关,存在于System.Data名称空间中。(1)数据集对象(DataSe)数据集是数据的内存驻留形式,此对象表示一组相关表,在应用程序中这些表作为一个单元来引用。有了此对象

9、,就可以快速从每个表中获取所需要的数据,当与服务器断开时检查并修改数据,然后在另一个操作中使用这些修改的数据更修服务器。(2)数据表对象(DataTable)数据表对象代表数据集中的一个表,此对象允许访问其中的行与列,即DataColumn对象和DataRow对象。(3)数据关系对象(DataRelation)数据关系对象代表通过共享列而发生关系的两个表之间的关系。四、应用实例4.1 设计思路本实例将开发一个数据格式转换软件,读取文本文件内容到Access数据库。文本内容包括多行3列用逗号分开的数据,分别代表点号名称、X和Y坐标。其中关键是基于C#.NET利用ADO技术让用户在程序运行过程中建

10、立数据库和表,逐行读取文本数据,并写入到用户自己建立的Access数据库表格中。访问数据库时,ADO.NET提供两种方式,一种是要持续保持连接的,最明显的特征就是用到了DataReader这个对象来访问数据;另一种是不需要持续保持连接的,这个时候要在本地创建一个数据接收对象,需要利用DataSet访问数据。以下核心代码将分别介绍这两种数据访问方法。4.2 核心代码(1)创建Access数据库和表ADOX.Catalog catalog=new Catalog();catalog.Create(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/tes

11、t.mdb;Jet OLEDB:Engine Type=5);ADODB.Connection cn=new ADODB.Connection();cn.Open(Provider=Microsoft.Jet.OLEDB.4.0;DataSource=d:/test.mdb,null,null,-1);catalog.ActiveConnection=cn;ADOX.Table table=new ADOX.Table();table.Name=Coordinates;ADOX.Column column=new ADOX.Column();column.ParentCatalog=catal

12、og;table.Columns.Append(Name,ADOX.DataTypeEnum.adVarWChar,10);table.Columns.Append(X,ADOX.DataTypeEnum.adDouble,20);table.Columns.Append(Y,ADOX.DataTypeEnum.adDouble,20);catalog.Tables.Append(table);cn.Close();(2)读取文本数据FileStream fs=new FileStream“(d:/point.txt”,FileMode.Open);StreamReader sr=new St

13、reamReader(fs);string strLine=sr.ReadLine();(3)访问Access数据库并写入数据OleDbConnection conn=new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/test.mdb”);/创建连接数据库的对象conn.Open();/打开方法一:创建有持续连接的读取数据的对象while(strLine!=null)stringline=strLine.Split(',');OleDbCommand cmd=new OleDbComman

14、d(Insert IntoCoordinates(Name,X,Y)values('+line0+','+line1+','+line2+'),conn);/创建执行SQL语句的命令对象cmd.CommandType=CommandType.Text;/指定命令的类型OleDbDataReader reader=cmd.ExecuteReader();/创建有持续连接的读取数据的对象strLine=sr.ReadLine();/读取下一行sr.Close();conn.Close();方法二:创建无持续连接的读取数据的对象DataSe

15、t thisDataset=new DataSet();/创建无持续连接的读取数据的对象OleDbDataAdapter thisAdapter=new OleDbDataAdapter(select Name,X,Y from Coordinates,conn);/把DataSet和具体数据库联系起来的对象OleDbCommandBuilder thisBuilder=new OleDbCommandBuilder(thisAdapter);thisAdapter.Fill(thisDataset,Coors);while(strLine!=null)stringstrArray=strLi

16、ne.Split(',');DataRow thisRow=thisDataset.TablesCoors.NewRow();thisRowName=strArray0;thisRowX=strArray1;thisRowY=strArray2;thisDataset.TablesCoors.Rows.Add(thisRow);thisAdapter.Update(thisDataset,Coors);strLine=sr.ReadLine();sr.Close();conn.Close();4.3 数据库访问技术比较用持续连接方式访问数据库的好处是DataReader的读

17、取效率非常快,是DataSet的几倍。但它的劣势也很明显,一是持续保持数据库连接,必然要抢占数据库的资源,如果一个数据库连接有上限限制,这就非常糟糕了。另一方面DataReader虽然效率高,但只读向前,很不灵活。而非持续连接方式的好处是数据读取灵活,操作方便,而且不占用数据库资源,还可以灵活绑定控件。五、结语阐述了基于C#.NET利用ADO技术在程序运行过程中建立数据库和表的方法,并对ADO.NET中的两种数据库访问方法进行比较,对使用C#.NET语言开发的应用程序对Access数据库的创建和访问有指导作用。参考文献1 (美)Karli Watson,(美)Christian Nagel,等,齐立波.C#入门经典.北京:清华大学出版社,2008,12.2 王红明,尹康银,彭思勇.C#语言与Oracle数据库的接口.信息通信,2009,3.3 谭锋,蔡丰.基于ADO技术动态创建SQL Server数据库.计算机时代,2007,3.11 / 11

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁