第4章 调用SQL Server 2005数据库.ppt_第1页
第4章 调用SQL Server 2005数据库.ppt_第2页
第4章 调用SQL Server 2005数据库.ppt_第3页
第4章 调用SQL Server 2005数据库.ppt_第4页
第4章 调用SQL Server 2005数据库.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

调用SQLServer2005数据库 网络数据库开发 本章重点 SQLServer2005应用基础ADO NET数据库概述数据库连接对象SqlConnection构造SQL语句对象SqlCommand处理结果对象SqlDataReader参数化对象SqlCommand存储过程 网络数据库开发 学习目标 通过对SQLServer2005的基础部分进行讲解 希望读者掌握SQLServer2005的主要功能以及如何使用SQLServer2005与VS2005集成环境相结合 并最终实现在VS2005集成开发环境中利用SQLServer2005对数据库与数据表进行管理 网络数据库开发 4 1SQLServer2005基础 SQLServerManagementStudio查询分析器VS2005集成开发环境 网络数据库开发 4 2ADO NET数据库概述 在企业管理中 数据的管理和分析常常是现代管理的核心 因此 开发企业管理的网站时 访问 管理和分析数据总是程序的关键环节 然而在网站中访问和管理数据本身并不是一件简单的事情 这是由于两方面的因素决定的 首先 网站需要的数据可能来自不同的数据源 例如数据库 文件 XML文档等 就以数据库来说 市场上还存在着各种不同类型的数据库 它们要求的接口也各不相同 其次 由于网站工作在开放的Internet环境中 网络数据库的访问比单机数据库的访问存在着更多的矛盾 例如 数据安全 访问效率 以及多用户同时访问时可能引发的竞争等 这些都需要得到妥善的解决 网络数据库开发 4 2ADO NET数据库概述 当前市场上存在着数十种不同类型的数据库 常用的有Access SQLServer Oracle Informix DB2等 这些数据库分别由不同的公司开发 技术都比较成熟 由于这些数据库采用的数据格式和接口各不相同 因此当应用程序访问它们时 就需要分别编写不同的接口 这种需要给应用程序的设计带来了麻烦 如何来解决这个矛盾呢 解决的方法就是由系统提供各种不同数据库的驱动程序 然后放在应用程序与数据库之间作为中间环节 微软公司提供的通用接口 多年来已经经历了几次大的改进 ODBC OLEDB ADO ADO NET 网络数据库开发 4 2ADO NET数据库概述 网络数据库开发 4 2ADO NET数据库概述 ADO NET访问数据采用层次结构 其逻辑关系如图所示 图的顶层代表Web应用层 底层代表各种不同类型的数据源 包括不同类型的数据库 XML文档等 中间是数据层 DataLayer 下面是数据提供器 Provider 在这个层次结构中 数据提供器起到了关键的作用 Provider相当于ADO NET的通用接口 各种不同的数据提供器对应于不同类型的数据源 每个数据提供器 Provider 相当于一个容器 包括一组类以及相关的命令 它是数据源与数据集 DataSet 之间的桥梁 它可以根据需要将相关的数据读入内存中的数据集 也可以将数据集中的数据返回到数据源 网络数据库开发 4 2ADO NET数据库概述 网络数据库开发 4 2ADO NET数据库概述 在ADO NET中数据集与数据提供器是两个非常重要而又相互关联的核心组件 数据集 DataSet 与数据提供器 Provider 的关系如图所示 图的左边代表数据集 DataSet 右边代表数据提供器 Provider 数据集是实现ADO NET断开式连接的核心 从数据源读取的数据先缓存到数据集中 然后被程序或控件调用 数据源可以是数据库或者XML数据 数据提供器用于建立数据源与数据集之间的联系 它能连接各种类型的数据 并能按要求将数据源中的数据提供给数据集 或者从数据集向数据源返回编辑后的数据 网络数据库开发 4 2ADO NET数据库概述 网络数据库开发 4 2 2ADO NET体系结构 Provider作为数据集与数据源之间的桥梁 主要任务是建立两者之间的联系 Provider相当于一个容器 包括4种核心类 其类名及其作用如下 Connection 连接 类 用于建立与数据源的连接 Command 命令 类 用于设置适合于数据源的操作命令 以便执行检索 编辑或输出参数等数据操作 DataAdapter 数据适配器 类 每张表对应一个数据适配器 用来向数据集中填入数据 或者从数据集中读出数据 DataReader 数据读取 类 用于从数据源向应用程序读取只向前的 只读的 无缓冲的字符流 网络数据库开发 4 2 2ADO NET体系结构 在ASP NET应用程序中需要通过ADO NET访问数据需要引入命名空间 1 System Data2 System Data Command3 System Data Oledbf4 System Data SqlClient5 System Data SqlTypes 网络数据库开发 4 2 3ADO NET中的对象 ADO NET中包括各种各样的对象 但对于SQLServer数据库的一般访问和操作 主要包括3个核心对象 分别是 SqlConnection SqlCommand SqlDataReader1 SqlConnection对象 要实现与一个数据库的交互 实现对一个数据库的访问和操作 必修先创建和该数据库的连接 网络数据库开发 4 2 3ADO NET中的对象 2 SqlCommand对象 在建立与数据库的连接之后 必须为指定的连接的数据库构造相关的SQL语句 以便实现对该数据库的相关访问和操作 通过执行SqlCommand对象中的相关方法 可以向相关数据源发送相关SQL语句命令或者调用数据库中定义的存储过程 从而实现对该数据库的相关访问和操作 网络数据库开发 4 2 3ADO NET中的对象 3 SqlDataReader对象 通过SqlCommand对象向数据源发送相关SQL命令后 就可以从数据源中返回一个SqlDataReader对象的数据流 通过对该数据流的进一步操作 就可以获得数据库中的相关信息 网络数据库开发 4 3数据库连接对象SqlConnection 创建SqlConnection对象时 它被初始化为 关闭 状态 如果在 关闭 状态下对数据库的任何操作都会有提示出错的信息 这时要调用SqlConnection对象的Open方法打开连接 如果SqlConnection对象已经打开 则此时再调用Open方法也会提示出错信息 如果在不确定数据库是否为打开状态 可以先检查一下SqlConnection对象的状态特征 通过State属性查看 网络数据库开发 4 3数据库连接对象SqlConnection 在Connection类中最重要的属性是ConnectionString 该属性用来指定服务器名称 数据源信息以及其他登录信息 以MSSQL数据库的连接对象为例 类名为SqlConnection 其创建的语句是 DataSource 服务器名 实例名 InitialCatalog 数据库名称 数据库连接方式方式一 数据库用户登录模式DataSource SQLEXPRESS InitialCatalog Northwind IntegratedSecurity True方式二 Windows登录方式DataSource SQLEXPRESS InitialCatalog Northwind UId sa Password 123 网络数据库开发 4 3数据库连接对象SqlConnection 创建一个SqlConnection对象的代码Stringstrconn 定义一个字符串Strconn DataSource SQLEXPRESS InitialCatalog Northwind IntegratedSecurity True 字符串赋值SqlConnectionconn newSqlConnection strconn 案例P128 网络数据库开发 4 3 4SqlConnection对象的常用属性 1 ConnectionString2 ConnectionTimeout3 Database和DataSource4 State 网络数据库开发 4 4SqlCommand对象 SqlCommand对象允许执行多种不同类型的查询 通过SqlCommand对象 可以设定对打开连接的数据库进行操作 如对数据库执行查询 添加相关记录 更新和删除某条记录等操作 网络数据库开发 4 4 1创建SqlCommand对象 可以通过三种方式创建SqlCommand对象 方式一 使用New关键字直接创建对象的一个实例 例如 SqlCommandcmd newSqlCommand SELECT FROMXS conn 方式二 使用可用的构造函数来指定查询字符串和SqlConnection对象 例如 SqlCommandcmd newSqlCommand cmd CommandText SELECT FROMXS cmd Connection conn 方式三 调用SqlConnection类的CreaterCommand方法 网络数据库开发 4 4 2对数据进行操作 通过在SqlCommand对象中构造不同类型的SQL语句之后 再调用SqlCommand对象中相关方法 即可实现各种数据操作 如数据查询 添加 更新 删除等操作 Command常用的几个方法 1 ExecuteReader 执行指定的SQL语句或存储过程名 返回值类型为DataReader2 ExecuteScalar 返回结果集中的首行首列3 ExecuteNonQuery 执行命令并返回受影响的行数 网络数据库开发 4 4 2对数据进行操作 1 数据查询实现数据查询的SqlCommand对象代码如下 SqlCommandcmd newSqlCommand selectCategoryNamefromCategories conn SqlDataReaderrdr cmd ExecuteReader 网络数据库开发 4 4 2对数据进行操作 2 插入数据实现插入功能的SqlCommand对象代码如下 stringinsertString insertintoCategories CategoryName Description values Miscellaneous Whateverdoesn tfitelsewhere SqlCommandcmd newSqlCommand insertString conn cmd ExecuteNonQuery 调用方法执行SQL语句 网络数据库开发 4 4 2对数据进行操作 3 更新数据实现数据更新功能的SqlCommand对象代码如下 stringupdateString updateCategoriessetCategoryName Other whereCategoryName Miscellaneous SqlCommandcmd newSqlCommand updateString cmd Connection conn cmd ExecuteNonQuery 网络数据库开发 4 4 2对数据进行操作 4 删除数据实现数据删除功能的SqlCommand对象代码如下 stringdeleteString deletefromCategorieswhereCategoryName Other SqlCommandcmd newSqlCommand cmd CommandText deleteString cmd Connection conn cmd ExecuteNonQuery 网络数据库开发 4 4 2对数据进行操作 5 返回单一值实现返回单一值功能的SqlCommand对象代码如下 SqlCommandcmd newSqlCommand selectcount fromCategories conn count int cmd ExecuteScalar 案例P136 网络数据库开发 4 4 3实现对象之间的关联 在实际应用中 在构造各种SQL语句时 需要使用参数化的SQL语句 因此就需要使用参数化的SqlCommand对象 首先新建参数化的SqlCommand对象 再定义SqlParameter对象 实现SqlParameter对象和SqlCommand对象的关联 具体方法如下 StringinputCity beijing SqlCommandcmd newSqlCommand select fromCustomerswherecity City conn cmd Parameters Add newSqlParameter city inputCity reader cmd ExecuteReader 网络数据库开发 4 5处理结果对象SqlDataReader 使用DataReader类可以实现对特定数据源中的数据进行高速 只读 只向前的数据访问 与数据集 dataSet 不同 DataReader是一个依赖于连接的对象 就是说 它只能在与数据源保持连接的状态下工作 因此执行的过程往往是 首先打开与数据源的连接 调用DataReader类的Re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论