版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用ADO.NET访问数据库C#连接数据库主要内容ADO.NET与数据库概述ADO.NET类和对象概述ADO.NET基本数据库编程数据库访问接口C#中接口就是ADO.NET和后台的数据库(包括SQLServer,Oracle,Access,Excel电子表格,甚至文本文件等)的连接部分。微软设计的ADO.NET并不是针对某个特定的数据库的,而是希望能够从所有的主流数据库中提取数据,而且ADO.NET也成功做到了这一点。这里的接口就是ADO.NET和数据库如何连接的方法。基于ADO.NET开发的数据库系统,其结构如下图所示。数据库访问接口1ADO.NET与数据库概述ADO.NET(即ActiveDataObjects.NET)是.NETFramework的重要组成部分,使用ADO.NET可以很方便的访问数据库。ADO.NET是数据库应用程序和数据源沟通的桥梁,主要提供一个面向对象的数据存储结构,用来开发数据库应用程序。ADO.NET的架构主要是希望能够在做处理数据的同时,不要一直和数据库联机,而导致一直占用系统资源的现象发生。1ADO.NET与数据库概述为了解决此问题,ADO.NET将存取数据和数据处理分开,达到离线访问数据的目的,使得数据库能够执行其他操作。因此将ADO.NET架构分成.NET数据提供程序和DataSet数据集(数据处理的核心)两个主要部分。数据库是有组织的信息集合。关系型数据库是一组相关信息的集合,组成表格结构。2ADO.NET类和对象概述ADO.NET中的类大概可分为.NET数据提供者对象和用户对象两种,.NET数据提供者对象专用于每一种类型的数据源,专用于提供者的用户对象完成在数据源中实际的读取和写入工作。用户对象是将数据读入到内存中后用来访问和操作数据的对象。用户对象以非连接方式使用。在数据库关闭之后也可以使用内存中的数据,而.NET数据提供者对象中要求活动的连接。.NET数据提供者对象常用的.NET数据提供者对象分为以下4种:SQLServer数据源提供程序OLEDB(ObjectLinkingandEmbedding,即对象链接和嵌入技术)数据源提供程序ORACLE数据源提供数据与ODBC兼容的数据源提供程序。 所有的数据提供程序都位于System.Data命名空间中。ODBCODBC即OpenDatabaseConnectivity,开放式数据库连接技术。使用ODBC的目标是使程序员开发的数据库项目可以几乎不加改动地访问不同操作系统平台上的各种数据库,如Windows平台上的SQLServer,Oracle,Access,UNIX平台上的Oracle等。OLEDBODBC接口出现之后,在很长的时间内一直是程序员开发数据库系统的首选接口技术,因为它比较简单。但ODBC接口有两个主要的缺陷。—
ODBC接口只能连接关系型数据,比如,关系型数据库、Excel、规定格式的文本等。但不能用于非关系型的数据,如电子邮件数据等。—
ODBC由于需要支持很多类型的数据库,普遍适用,但对每种数据库的支持都不是特别理想。OLEDBOLEDB(ObjectLinkingandEmbedding,即对象链接和嵌入技术)是新一代数据接口标准,其设计要求是能够以统一的方式访问所有的数据类型。换句话说,开发的数据库项目的后台数据库几乎可以是所有的数据类型。目前OLEDB也逐步成为了利用ADO.NET开发数据库项目的接口标准。微软已经开发了许多标准的OLEDB驱动程序。OLEDB接口中没有集中管理OLEDB驱动程序,而是开发了各种数据库的OLEDB驱动程序,程序员可以按照数据库类型的不同选择驱动程序。OLEDB和ODBC的比较OLEDB接口追求的是“专用”,每种类型的数据库有自己专用的OLEDB接口驱动程序。ODBC接口追求的是“通用”,首先都要使用ODBC数据源管理器,然后调用自己的驱动程序。提示:正是由于OLEDB接口的驱动程序是针对特定类型的数据库设计的,所以尽管通用性差一些,但效率更高。.NET数据提供者对象Connection对象Command对象DataReader对象DataAdapter对象用户对象一般性数据类对象可以为数据库中的信息存储一个本地拷贝,从而可以在切断数据库连接时处理这个信息。可以按任何顺序读行,可以按灵活的方式搜索、排序和过滤这些行,甚至可以改变这些行,然后将所做的改变同步到数据库中,主要包含以下几种对象。DataSet对象DataTable对象DataRow对象DataColumn对象使用System.Data命名空间进行ADO.NET程序开发的第一步就是引用System.Data命名空间,其中含有所有的ADO.NET类,将using指令插入在程序的顶端:usingSystem.Data;1.SQLServer.NET数据提供者
usingSystem.Data.SqlClient;2.OLEDB.NET数据提供者
usingSystem.Data.OleDb;3.Oracle数据提供者
usingSystem.Data.OracleClient;4.ODBC.NET数据提供者
usingSystem.Data.Odbc;连接并使用数据库一般步骤1.创建数据库,如Access,SQLServer2000等2.使用Connection对象连接数据库3.使用Command对象对数据源执行SQL命令并返回数据4.使用DataReader和DataSet对象读取和处理数据源的数据5.断开数据库连接例1usingSystem;usingSystem.Data.SqlClient;namespaceMyFirstExample{classMyFirstExample{staticvoidMain(string[]args){
//连接SQLServer2000数据库的字符串StringconnectionString=@"server=localhost\hmx;database=Northwind;uid=sa;pwd=";
//创建SqlConnection对象,并连接到SQLServer2000自带的Northwind数据库SqlConnectionmySqlConnection=newSqlConnection(connectionString);
//创建SqlCommand对象
SqlCommandmySqlCommand=mySqlConnection.CreateCommand();stringcommandString="SelectCustomerID,CompanyName,ContactName,Address"+"FromCustomersWhereCustomerID='ALFKI'";mySqlCommand.CommandText=commandString;
//用Connection对象的Open()方法打开数据库
mySqlConnection.Open();//创建SqlDataReader对象,并执行ExecuteReader()方法SqlDataReadermySqlDataReader=mySqlCommand.ExecuteReader();
//读取每行记录mySqlDataReader.Read();
//显示列属性值Console.WriteLine("mySqlDataReader[\"CustomerID\"]="+mySqlDataReader["CustomerID"]);Console.WriteLine("mySqlDataReader[\"CompanyName\"]="+mySqlDataReader["CompanyName"]);Console.WriteLine("mySqlDataReader[\"ContactName\"]="+mySqlDataReader["ContactName"]);
Console.WriteLine("mySqlDataReader[\"Address\"]="+mySqlDataReader["Address"]);Console.Write("恭喜,显示数据任务完成!");Console.ReadLine();
//关闭SqlDataReader对象mySqlDataReader.Close();
//关闭数据库连接mySqlConnection.Close();}}
}3ADO.NET基本数据库编程常用的数据库编程包括连接数据库、插入新的数据、删除数据和修改数据,即执行SQL语法中的Insert、Delete、Update语句。连接数据库进行ADO.NET的开发首先需要进行数据库的连接。本例子中的数据库是SQLServer2000中自带的Northwind数据库。下面的代码是一个连接字符串样本,用来访问Northwind数据库。连接数据库staticprivatestringGetConnectionString(){
//适用于SQLServer数据库 return@"server=localhost;database=Northwind;uid=sa;pwd=sa";
//适应于Access等数据库return@"Provider=Microsoft.Jet.OleDb.4.0;DataSource=C:\MyFile.mdb";} 其中C:\MyFile.mdb为存放Access数据库文件的位置。插入新的数据记录使用Command对象的ExecuteNonQuery()方法来实现插入数据操作,用SQL的Insert语句来设定具体的要插入的新记录内容。 下面的程序实现在Northwind数据库中的Student表中插入一条新的记录。 程序代码如下:usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;namespaceADONETWriteQuery{
插入新的数据记录
classADONETWriteQuery{staticvoidMain(string[]args){
//连接SQLServer2000数据库的字符串StringconnectionString=@"server=localhost\hmx;database=mydata;uid=sa;pwd=";
//创建SqlConnection对象,并连接到SQLServer2000的mydata数据库SqlConnectionmySqlConnection=newSqlConnection(connectionString);
插入新的数据记录
//创建SqlCommand对象SqlCommandmySqlCommand=mySqlConnection.CreateCommand();
//创建SQL的Insert语句,在Student表中输入一条新的记录stringInsertString="INSERTINTOStudent(StudentNo,StudentName,Sex)VALUES('060203','王二','男')";mySqlCommand.CommandText=InsertString;
//用Connection对象的Open()方法打开数据库mySqlConnection.Open();
插入新的数据记录
//用SqlCommand对象,插入一条新的记录
mySqlCommand.ExecuteNonQuery();Console.Write("恭喜,输入新数据任务完成!");
//关闭数据库连接mySqlConnection.Close();Console.ReadLine();}}}删除数据记录使用Command对象的ExecuteNonQuery()方法来实现删除数据操作,用SQL的Delete语句来设定具体的要删除的记录。下面的程序实现了在Northwind数据库中的Student表中删除指定的记录。程序清单如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data;usingSystem.Data.SqlClient;namespaceADONETDeleteQuery{
删除数据记录classADONETDeleteQuery{staticvoidMain(string[]args){
//连接SQLServer2000数据库的字符串stringconnectionString=@“server=localhost\hmx;database=Northwind;uid=sa;pwd=";
//创建SqlConnection对象,并连接到SQLServer2000自带的Northwind数据库SqlConnectionmySqlConnection=newSqlConnection(connectionString);
删除数据记录
//创建SqlCommand对象SqlCommandmySqlCommand=mySqlConnection.CreateCommand();
//创建SQL的Delete语句,在Student表中删除指定的记录stringDeleteString="DELETEFROMStudentWHEREStudentName='赵一'";mySqlCommand.CommandText=DeleteString;
删除数据记录
//用Connection对象的Open()方法打开数据库mySqlConnection.Open();
//用SqlCommand对象,删除满足条件记录if(mySqlCommand.ExecuteNonQuery()>0)Console.Write(“恭喜,从Student删除指定记录任务完成!”);//返回受影响记录行数elseConsole.Write(“没有满足条件的记录”);
//关闭数据库连接mySqlConnection.Close();}}}修改数据记录使用Command对象的ExecuteNonQuery()方法来实现修改数据操作,用SQL的Update语句来修改指定记录内容。下面的程序实现在Northwind数据库中的Student表中修改指定的记录。程序清单如下:usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;namespaceADONETModifyQuery{
修改数据记录classADONETModifyQuery{staticvoidMain(string[]args){
//连接SQLServer2000数据库的字符串stringconnectionString=@"server=localhost\hmx;database=Northwind;uid=sa;pwd=";
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股前外侧皮瓣的整体护理
- 跨境电商跨境支付服务合作协议2026版
- 脑卒中重点预防-1
- 第27讲 染色体变异
- 安全工作计划制定讲解
- 竹业项目可行性研究报告
- 林地开发项目可行性研究报告
- 宫颈肥大健康宣教
- 银行安全先进经验讲解
- 血液透析患者透析失衡综合征预防管理规范
- (2026秋新版)北师大版六年级数学上册全册教案
- 英语句子成分及五种简单句PPT
- GB/T 880-2008无头销轴
- GB/T 8685-2008纺织品维护标签规范符号法
- GB/T 6682-2008分析实验室用水规格和试验方法
- GB/T 15065-2009电线电缆用黑色聚乙烯塑料
- 农业生物环境工程第 温室设施环境调节与控制1
- 化学品安全技术说明书MSDS(液氨)
- 《建设项目全过程造价咨询规程》2017年1月18日
- 中医学脏腑辨证课件
- 52206马工程组织行为学课件
评论
0/150
提交评论