第10章 数据库编程.ppt_第1页
第10章 数据库编程.ppt_第2页
第10章 数据库编程.ppt_第3页
第10章 数据库编程.ppt_第4页
第10章 数据库编程.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

第十章数据库编程 本章导读 在第5章和第6章实现了个人简历的建立与编辑 本章将在其基础上继续完善成招聘信息管理系统 实现数据的数据库存储 并能实现多个简历的建立与管理 让读者掌握数据库应用程序设计与调试的一般过程 C 为数据库编程提供了一套完整的数据库编程解决方案 其中涉及的系统类较多 虽然C 提供了可视化快速操作数据库的方案 但是对于程序员来说 理解和掌握数据库编程技术和方法是必要的 10 1案例分析 招聘信息管理系统 案例分析 招聘信息管理系统 案例分析 10 2软件设计 1软件功能分析 招聘信息管理系统功能需求图 2软件工作流程 招聘信息管理系统工作流程图 3设计用户界面 招聘信息管理主要窗体 10 3数据库设计 1数据库设计 数据库Job中的数据表 10 4 4建立数据库 实作任务 请在sqlserver2005及更高版本中建立数据库job根据教材中的表10 2至表10 8建立数据表也可将本教程配套的源代码中的数据库附加到当前sqlserver中 建立数据库关系 实作任务 建立数据库各表之间关系 建立数据视图 实作任务 建一视图显示最新的10条职位信息建一视图显示应聘者信息 三个表密切相关 10 4快速操作数据 快速操作数据 用设计器完成数据的快速访问 修改等操作来体验一下 NET给我们带来的快乐感受 实作任务 快速操作数据 新建项目及窗体TestForm展开 服务器资源管理器 右键单击 数据连接 项 选择 添加连接 选取服务器和要连接的数据库Job 测试连接 快速操作数据 为窗体配置数据源 DataSet 快速操作数据 拖动表 jobInfo 到窗体上 一个数据编辑器产生了按F5键调试运行该程序 效果如图所示 10 5 NET数据库编程概述 1 NET应用程序结构 集中式结构程序 数据由一台计算机完成Client Server两层结构 C S 客户端Client 显示和I O及业务计算 一般由PC承担 数量较多 通常称为胖客户端数据库服务器Server 数据管理系统 部分业务计算Browser Server三层结构 B S 浏览器客户端Browser 显示和I O 通常称为瘦客户端应用服务器Server 业务计算 如Web服务器及各种专门的应用服务器 BorlandApplicationServer SunApplicationServer BeaWeblogic IBMWebsphere等数据库服务器Server 数据管理系统 典型的三层结构 NETFramework非常适用于开发多层结构应用软件 NET三层结构应用软件示意图如下 2 NET数据库应用程序工作过程 一个典型的数据应用程序会采用下图中所示的大部分过程 3ADO NET 在VisualStudio中创建应用程序所用的基础数据结构是ADO NETADO NET提供对诸如SQLServer和XML这样的数据源以及通过OLEDB和ODBC公开的数据源的一致访问ADO NET包含用于连接到数据库 执行命令和检索结果回写到数据库的系列组件ADO NET用于访问和操作数据的两个主要组件是 NETFramework数据提供程序和DataSet 3ADO NET NETFramework数据提供程序Connection对象提供到数据源的连接Command对象用于返回数据 修改数据 运行存储过程以及发送或检索参数信息的数据库命令DataReader可从数据源提供高性能的数据流DataAdapter在DataSet对象和数据源之间起到桥梁作用 DataAdapter使用Command对象在数据源中执行SQL命令以向DataSet中加载数据 并将对DataSet中数据的更改协调回数据源 3ADO NET DataSetADO NET中DataSet是专门为独立于任何数据源的数据访问而设计的DataSet包含一个或多个DataTable对象的集合 这些对象由数据行DataRow和数据列DataColumn以及有关DataTable对象中数据的主键 外键 约束和关系信息DataRelation组成 ADO NET组件结构 10 6数据提供程序 10 6 NETFramework数据提供程序 NETFramework数据提供程序核心类 10 7连接数据库 1连接字符串 SqlClient连接字符串连接到SQLServer使用Windows身份验证连接到服务器SOFTWARE上的Job数据库 IntegratedSecurity true InitialCatalog Job Server SOFTWARE 或者 用如下方式连接到本地服务器上的Job数据库 IntegratedSecurity SSPI database Job server local 使用SQLServer验证连接到服务器SOFTWARE上的Job数据库 PersistSecurityInfo False UserID Password InitialCatalog Job Server SOFTWARE 星号表示有效用户名和密码 1连接字符串 OleDb连接字符串连接到Access数据库 Provider Microsoft Jet OLEDB 4 0 DataSource d Northwind mdb JetOLEDB SystemDatabase d NorthwindSystem mdw UserID Password 连接到Excel Provider Microsoft Jet OLEDB 4 0 DataSource D MyExcel xls ExtendedProperties Excel8 0 HDR Yes IMEX 1 1连接字符串 Odbc连接字符串连接到VisualFoxPro Driver MicrosoftVisualFoxProDriver SourceDB1 D MyData DBC SourceType DBC Oracle连接字符串 DataSource Oracle9i UserID Password 2使用应用程序配置文件 配置文件下面的配置文件片段演示用于存储连接字符串的架构和语法 2使用应用程序配置文件 运行时使用配置类检索连接字符串如下示例演示如何列出所有连接字符串 usingSystem Configuration classProgram staticvoidMain ConnectionStringSettingsCollectionsettings settings ConfigurationManager ConnectionStrings foreach ConnectionStringSettingscsinsettings Console WriteLine cs Name Console WriteLine cs ProviderName Console WriteLine cs ConnectionString 2使用应用程序配置文件 实作任务 在当前项目中添加一个配置文件app config在Program cs文件头添加名字空间引用 usingSystem Configuration 在Program类中添加一个静态方法 返回app config中的连接字符串 3数据连接Connection 每个Framework数据提供程序包含一个Connection对象 3数据连接Connection Connection对象最重要的属性是连接字符串ConnectionString 最重要的方法是Open 和Close 例如 SqlConnectiondbConnection newSqlConnection 创建连接对象dbConnection ConnectionString connectionString 连接字符串dbConnection Open 打开连接也可以在创建连接对象时直接指定连接字符串例如 OleDbConnectionconn newOleDbConnection connString 实作任务 10 8数据操作命令 1执行命令DbCommand 每个Framework数据提供程序都具有一个Command对象OleDbCommandSqlCommandOdbcCommandOracleCommandDbCommand对象最重要的属性Connection 该命令对应的数据连接CommandText 要执行的SQL命令语句 DbCommand对象执行SQL命令的方法 2读取数据DataReader DataReader对象是一个简单的数据集 用于从数据源中检索只读数据集 常用于检索大量数据DataReader可通过Command对象的ExecuteReader方法从数据源中检索数据来创建 2读取数据DataReader DataReader常用属性 Fieldcount 得到一行数据的字段数目Hasrows 表示datareader是否包含数据Isclosed 表示DataReader是否关闭FieldCount 只读 表示当前行的列数 列的编号从0开始DataReader常用方法 Boolread 读取下一笔记录 成功返回True 没有记录返回FalseObjectgetvalue inti 返回当前记录行里指定列的值 Intgetvalues object values 当前记录行里的全部数据保存到数组里boolIsDBNull inti 判断指定索引号的列值是否为空 stringGetName inti 取得指定列的字段名称stringGetFieldType inti 获取指定列的数据类型Close 将DataReader对象关闭 实作任务 实现 招聘信息管理 窗体Employ中 修改单位简介 10 9数据集DataSet 数据集DataSet DataSet表示整个数据集 其中包含对数据进行包含 排序和约束的表以及表间的关系由于DataSet独立于数据源 因此DataSet可以包含应用程序本地的数据 也可以包含来自多个数据源的数据DataSet与现有数据源的交互通过DataAdapter来控制 DataSet就是内存中的一个小型数据库 1数据适配器DataAdapter DataAdapter是数据源 数据库 与数据集DataSet之间的数据通道 用于从数据源检索数据并填充DataSet中的表将DataSet的更改解析回 写入 数据源DataAdapter使用Connection对象连接到数据源 使用Command对象从数据源检索数据以及将更改写入数据源SelectCommandInsertCommandUpdateCommandDeleteCommand 1数据适配器DataAdapter DataAdapter最重要的方法是Fill和UpdateFill 填充 使用SelectCommand结果填充DataSetUpdate 更新 将DataSet中的更改解析回数据源 实作任务 2命令生成器CommandBuilder 如果你的DataTable映射到单个数据库表 那么可以用DbCommandBuilder对象自动生成DbDataAdapter的DeleteCommand InsertCommand和UpdateCommand必须设置SelectCommand属性当DbCommandBuilder与DataAdapter关联时 DbCommandBuilder会自动生成DataAdapter的InsertCommand UpdateCommand和DeleteCommand属性 3TableAdapter TableAdapter是通过封装并且经过配置的DataAdapterTableAdapter通常包含Fill和Update方法 用于获取和更新数据库中的数据 除了InsertCommand UpdateCommand和DeleteCommand之外 TableAdapter还生成了一些可以直接在数据库上执行的方法 如Insert Update和Delete 4数据集DataSet DataSet对象模型 5数据表DataTable DataTable是内存中的数据表 是ADO NET核心对象DataTable的主要组件DataRow 数据行 DataColumn 数据列 可以通过表的行索引号使用DataTable中的某行DataRowdr jobDataTable 2 提取第三行数据可以用列索引或者列名使用一行中的某个值stringstr dr 1 ToString 提取第二列数据dr jobName 程序员 给jobName列赋值 5数据表DataTable 实作任务 编程方式创建表和数据集 多学一点 DataTable常用方法 属性和事件DataRow常用方法 属性和事件 6LINQtoDataSet LinqtoDataSe可以不用写SQL或存储过程去访问数据库 编写更少代码即可创建完整应用LINQtoADO NET分为LINQtoSQL着允许你查询SQLServerdatabaseLINQtoDataSet主要是提供对离线数据的支持 可以更快更容易地查询在DataSet对象中缓存的数据只有在填充DataSet之后 才能使用LINQtoDataSet查询数据 6LINQtoDataSet LINQ的语法格式 实例 LINQ单表查询 实例 LINQ多表查询 from临时变量in集合对象或数据库对象where条件表达式 orderby条件 groupby条件 select临时变量中被查询的值 7Lambda表达式 lambda表达式格式Lambda表达式常用优化和扩展DataSet查询处理例如 在一个product列表中取出ProductID为5的一项proOne 参数列表 表达式或者语句块 1 for方法 for inti 0 ip ProductID 5 10 10数据绑定组件 BindingSource 1数据绑定 在

温馨提示

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

评论

0/150

提交评论