`
webdev2014
  • 浏览: 675537 次
文章分类
社区版块
存档分类
最新评论

数据访问与ADO.NET

 
阅读更多

ADO.NET的设计目标

ADO.NET是Microsoft公司发布的新一代数据存取技术,是一个全新的数据库访问模型,使应用程序的开发人员能方便的访问不同的数据源

ADO.NET提供对SQL Server等数据源以及通过OLEDB和XML公开的数据源的一致访问。数据共享应用程序可以使用ADO.NET来连接到这些数据源,并检索、操作和更新数据

设计目标:

n 支持断开式多层编程模式

n 能够与XML紧密集成

n 具有能够组合来自多个、不同数据源的数据通用数据表示形式

n 具有为与数据库交互而优化的功能

ADO.NET体系结构:

ADO.NET的两个核心组件:(1)DataSet (2)数据提供程序(DataProvider:包括Connection、Command、DataReader、DataAdapter)

DataSet

u DataSet是ADO.NET的断开式结构的核心组件

u 设计目的:为了实现独立于任何数据源的数据访问

u 可以用于多种不同的数据源,用于XML数据,或用于应用程序本地数据

u DataSet包含一个或多个DataTable对象集合

数据提供程序(DataProvider)

设计目标:为了实现数据操作和对数据快速、只进、只读访问

.NET框架提供了4个数据提供程序

1.SQL Server数据提供程序

2.OLE DB数据提供程序

3.ODBC数据提供程序

4.Oracle数据提供程序

DataProvider的四个对象

a)Connection对象:提供与数据源的连接

b)Command对象:使用户能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。

c)DataReader对象:从数据源中提供高性能的数据流,读取数据

d)DataAdapter对象:提供连接DataSet对象和数据源的桥梁

DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使对DataSet中数据的更改与数据源保持一致

数据库连接

要访问数据库,首先必须建立与数据库的连接

使用Connection对象创建和管理连接:

连接字符串

在建立连接时,通常要提供一些数据源的信息,如数据库的名称、数据库所在物理位置、用户账号、密码等等(和一般连接数据库吗没什么区别)

通过Connection对象的ConnectionString属性来设置

打开和关闭连接

连接的两个主要方法是Open和Close

Open方法

使用ConnectionString属性中的信息联系数据源并建立一个打开的连接

Close方法

关闭连接,是非常必要的。因为大多数据源只支持有限书目的打开的连接,并且打开的连接占用宝贵的系统资源

如果正在使用DataProvider或Command,则不必显示打开和关闭连接。因为当调用这些对象的某个方法(例如DataAdapter的Fill或Update方法)时,该方法将检查连接是否已经打开,如果没有,适配器将打开连接,执行其逻辑,然后再关闭连接。

Command对象

在用Connection对象成功连接数据库后,可以用command对象对数据进行操作,如对数据进行增、删、查、改等操作

Command对象表示要对数据源执行的一个SQL语句或存储过程

DataAdapter对象

DataAdapter(数据适配器)用来建立和初始化数据表,并将其填入DataSet对象,在内存中存储数据。

DataAdapter的主要方法是Fill,用来将来自DataAdapter中的数据填入DataSet中

DataSet

DataSet对象是一个存储在内存中的离线数据库,它并未与数据库建立及时的连接

DataSet对象专门用来存储从数据源中读出的数据,无论是SQL Server数据库还是Access数据库,在DataSet中存储方式都是一致的,用户无法从DataSet中判断读取的数据库类型

DataReader对象

如果不需要DataSet所提供的功能,则可以使用DataReader以只读方式返回数据

因为节省了DataSet所使用的内存,并省去了创建DataSet并填充其内容所需要的必要处理,所以可以提高应用程序的性能。

C#代码示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace 图书管理1
{
    class BaseOperate
    {
        //建立数据库连接
        public SqlConnection getcon()
        {
            string str_sqlcon = "data source=.;database=library_sys;uid=sa;pwd=123456";
            try
            {
                SqlConnection myCon = new SqlConnection(str_sqlcon);
                return myCon;
            }
            catch (Exception ex)
            {
                MessageBox.Show("出错了","链接出错",MessageBoxButtons.OK);
                throw ex;
            } 
        }
        //执行sqlcommand命令,但无返回值
        public void getcom(string sqlstring)
        {
            SqlConnection sqlcon = this.getcon();
            sqlcon.Open();
            SqlCommand sqlcom = new SqlCommand(sqlstring, sqlcon);
            sqlcom.ExecuteNonQuery();
            sqlcom.Dispose();
            sqlcon.Close();
            sqlcon.Dispose();
        }
        //执行sql语句并返回一个dataset数据集对象
        public DataSet getds(string sqlstring)
        {
            SqlConnection sqlcon = this.getcon();
            SqlDataAdapter sqlda = new SqlDataAdapter(sqlstring, sqlcon);
            DataSet myds = new DataSet();
            sqlda.Fill(myds);
            return myds;
        }
        //执行sql语句并返回一个sqlReader类型的对象,用于读取查询的数据
        public SqlDataReader getread(string sqlstring)
        {
            SqlConnection sqlcon = this.getcon();
            SqlCommand sqlcom = new SqlCommand(sqlstring, sqlcon);
            sqlcon.Open();
            SqlDataReader sqlread = sqlcom.ExecuteReader(CommandBehavior.CloseConnection);
            return sqlread;
        }

分享到:
评论

相关推荐

    ADO.NET数据库访问技术详细资料

    ADO.NET是与数据库访问操作有关的对象模型的集合,它基于Microsoft的.NET Framework,在很大程度上封装了数据库访问和数据操作的动作。 ADO.NET同其前身ADO系列访问数据库的组件相比,做了以下两点重要改进: ...

    09数据访问技术--ADO.NET程序设计课后习题答案

    09数据访问技术--ADO.NET程序设计课后习题答案09数据访问技术--ADO.NET程序设计课后习题答案09数据访问技术--ADO.NET程序设计课后习题答案

    ADO.NET数据访问技术的PPT

    不管是Windows桌面应用程序,还是Web应用程序,存储和检索数据都是ADO.NET的核心功能。此PPT讲述ADO.NET的概念、概念和用法

    ADO.NET本质论

    讲解了数据结构,演示了如何用ADO.NET来解决具体的数据访问问题。重点讨论了ADO.NET如何有效地平衡"功能的泛化"和"执行效率",以及它如何解决对扩展性、并发性和可靠性的要求。针对其他数据访问API(包括OLE DB,ADO...

    ADO.NET高级编程

    ADO.NET是Microsoft最新推出的数据访问技术。作为.NET框架的一部分,ADO.NET绝不仅仅是前一版本ADO的简单升级。ADO.NET提供了一组.NET类,这些类不仅可以帮助我们对各种数据源进行高效访问,使我们能够对数据...

    ADO.NET本质论.pdf

    9.6 ado.net与ado断开模型的比较 9.6.1 类的等价物 9.6.2 导航 9.6.3 ado.net中的getrows有何变化 9.6.4 更新 9.6.5 创建更新语句 9.6.6 批处理更新 9.6.7 ado.net的dataset扩展 9.6.8 列...

    ADO.NET连接环境中访问数据_执行命令读取数据

    ADO.NET连接环境中访问数据_执行命令读取数据 ppt

    基于ASP.NET的ADO与ADO.NET分析与研究

    探讨基于ASP.NET框架ADO和ADO.NET的两种数据库访问技术,并给出一个在ASP.NET下...然后,对这两种技术在缓存中的数据集存储形式、脱机与连机关系、标准化程度、传输性能方面进行了比较分析,突出了ADO.NET的优点

    ADO.NET程序设计模拟题

    2 在ADO.NET 中,为访问DataTable 对象从数据源提取的数据行。可使用DataTable 对象的_______属性。 A. Rows B. Columns C. Constraints D. DataSet 正确答案:A 3 在ADO.NET 中使用XML 支持时,以下哪些建议...

    ADO与ADO.NET

    ADO与ADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易于使用、高速度、低...ADO.NET为.NET构架提供了优化的数据访问模型,和基于COM的ADO是完全两样的数据访问方式。

    ado[1].net中文手册 学习 ado.net的重要资料

    与 ADO 的早期版本和其他数据访问组件相比,ADO.NET 提供了若干好处。这些好处分成以下几个类别: 互操作性 ADO.NET 应用程序可以利用 XML 的灵活性和广泛接受性。由于 XML 是用于在网络中传输数据集的格式,因此...

    数据结构ADO.net访问数据库

    数据结构ADO.net访问数据库内涵详细信息

    ADO.NET 全面解析ADO.NET

    ADO.NET设计目标 ADO.NET对象模型 ADO.NET——标准的数据访问API ADO.NET Data Provider Connection和Command DataAdapter和DataReader DataSet 强类型的DataSet 数据绑定

    ADO.NET技术内幕 part4

    介绍了如何使用ADO.NET在企业级的Web应用程序中访问、排序和处理数据。通过书中丰富的实例和工具,读者能够了解编写、测试与调试数据库应用程序代码的方法。本书还介绍了ADO.NET对象模型,用于Web扩展性的XML特性,...

    数据访问技术ADO.NET、ADO和OLE+DB的比较.pdf

    数据访问技术ADO.NET、ADO和OLE+DB的比较.pdf

    ADO.NET技术基础

    准确地说, ADO.NET 是一组向 .NET 程序员公开数据访问服务的类, 即ADO.NET是由很多类组成的一个类库。 ADO.NET用于处理三种不同的数据访问方式,并提供标准的方法 ADO.NET连接到数据库的访问模式 ADO.NET支持基于...

    C#数据库访问技术ADO.net

    ADO.net访问数据库的技术,包括数据连结,数据库查询、修改、更新和删除常规操作,是微软的系列课程。

    ADO与ADO.NET编程指南PDF,本书深入浅出地介绍了ado与ado.net编程,介绍用这两种API编写适用于各种数据源和前端的数据访问代码等。

    ADO与ADO.NET编程指南PDF,本书深入浅出地介绍了ado与ado.net编程,介绍用这两种API编写适用于各种数据源和前端的数据访问代码等。

    数据访问技术系列课程(2):ADO.NET 连接方式进行数据访问

    数据访问技术系列课程(2):ADO.NET 连接方式进行数据访问

    ASP.NET ADO.NET 数据访问 Demo

    环境:Visual Studio 2008 + Sql Server 2005;这个Demo作为ASP.NET初学者学习ADO.NET数据访问内容有参考价值,数据库sql脚本也在里面了。

Global site tag (gtag.js) - Google Analytics