vc 第11讲 简单数据库编程_第1页
vc 第11讲 简单数据库编程_第2页
vc 第11讲 简单数据库编程_第3页
vc 第11讲 简单数据库编程_第4页
vc 第11讲 简单数据库编程_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、Visual C# .NET第十一讲 简单数据库编程1数据库和数据库系统数据库:按一定结构组织在一起的相关数据的集合数据库管理系统(DBMS):它是专门负责组织和管理数据信息的软件数据库应用程序:它使我们能够获取、显示和更新由DBMS存储的数据 数据库的核心是数据,其具体的组织形式与数据库管理系统紧密关联,而表现形式又取决于数据库应用程序。 2数据库访问的几个概念 数据源(Data Source) 数据源是指本地和远程的物理数据库,或者是XML文件。 数据提供者(Data Provider) 数据提供者将如何实现与物理数据库或者XML文件连接的复杂过程细节对用户隐藏,展现在用户面前的只是简单地

2、使用该部件轻松地完成连接到一个或多个数据源、传送命令,以及将数据传送到数据集(DataSet)中。 数据集(DataSet) 数据集对象用来表示来自一个或多个数据源并保存在内存中的表和关系。3ADO.NET对象模型的结构 ADO.NET的对象模型由两个部分组成:数据提供程序(Data Provider,有时也叫托管提供程序)和数据集(DataSet)。数据提供程序负责与物理数据源的连接,数据集代表实际的数据。这两个部分都可以和数据使用程序通信,如Web Form窗体和Win Form窗体。 1数据提供程序 .Net数据提供程序提供了四个核心对象:Connect, Command, DataRe

3、ader, DataAdapter4ADO.NET对象模型的结构2. 数据集数据集(DataSet)是记录在内存中的数据,它的结构如图所示。 5ADO.NET数据库开发方式1.了解ADO.NET数据库开发 ADO.NET在Windows平台下主要有4种数据库访问方式:OLEDB模式、ODBC模式、SQLClient模式和Oracle数据库模式,每一种模式都有前述ADO.NET对象模型的一种实现。 OLEDB模式 OLEDB模式主要用于访问OLEDB所支持的数据库。 在使用OLEDB模式时需要引入的命名空间有System.Data和System.Data.OleDb,对应于ADO.NET对象模型

4、中的对象,OLEDB模式的对象名称分别为OleDbConnection对象,OleDbCommand对象,OleDbDataAdapter对象和OleDbDataReader对象。6ADO.NET数据库开发方式 ODBC模式 ODBC模式主要用于连接ODBC所支持的数据库。 在使用ODBC模式时需要引入的命名空间有System.Data和System.Data.Odbc,对应于ADO.NET对象模型中的对象,ODBC模式的对象名称分别为OdbcConnection对象,OdbcCommand对象,OdbcDataAdapter对象和OdbcDataReader对象。 SQLClient模式 S

5、QLClient模式只用于访问MS SQL Server数据库,是ADO.NET中比较特殊的组件。 在使用SQLClient模式时需要引入的命名空间有System.Data和System.Data.SqlClient,对应于ADO.NET对象模型中的对象分别是SqlConnection对象、SqlCommand对象、SqlDataAdapter对象和SqlDataReader对象。 7ADO.NET数据库开发方式2. ADO.NET中两种基本的数据库开发方式 利用Command对象和DataReader对象直接操作和显示数据 可以使用数据命令Command对象和数据读取器对象DataReade

6、r以便与数据源直接通信。使用数据命令Command对象和数据读取器对象DataReader直接进行的数据库操作包括:运行查询和存储过程、创建数据库对象、使用DDL命令直接更新和删除 使用DataAdapter对象和DataSet对象 如果应用程序需要访问多个源中的数据,需要与其他应用程序相互操作或者可受益于保持和传输缓存结果,则使用DataAdapter适配器对象和数据集DataSet是一个极好的选择。83使用ADO.NET开发数据库应用程序的一般步骤 (1)根据使用的数据源,确定使用的.NET Framework数据提供程序;(2)建立与数据源的连接,需使用Connection对象;(3)执

7、行对数据源的操作命令,通常是SQL命令,需使用Command对象;(4)使用数据集对获得的数据进行操作,需使用DataReader、DataSet等对象;(5)向用户显示数据,需使用数据控件。 9 SQL语言 结构化查询语言(Structure Query Language,简称SQL)是基于关系模型的数据库查询语言,它是一种非过程化的程序语言。 如:Select 图书名称,出版时间 from 图书 where 出版社=机械工业出版社含义为从BOOK数据库的图书表中将出版社是机械工业出版社的所有图书选出来,并列出它们的图书名称和出版时间。10SQL的基本语法11SQL的基本语法12SQL的基本

8、语法13 SQL语言 1数据查询格式:SELECT ALL | DISTINCT |TOP N|TOP N PERCENT*|列名1或表达式1 AS 列标题1 ,列名2或表达式2 AS 列标题2FROM 表名1 IN 数据库名1 别名1,表名2 IN 数据库名2 别名2 WHERE 条件 GROUP BY列名1 , 列名2HAVING 条件ORDER BY 列名1 ASC | DESC , 列名2 ASC | DESC14例如,有语句:Select 学号,姓名,年级 from 学生 Where 专业=自动化其作用是“列出自动化专业的全部学生的学号、姓名和年级。”又如,有语句:SELECT 学生

9、.学号,学生.姓名,必修课成绩.课号,必修课成绩.成绩 FROM 学生,必修课成绩 WHERE 学生.学号=必修课成绩.学号其作用是“查询出所有学生的必修课的学习情况,查询结果中包含学号、姓名、课号和成绩。” 152插入记录 格式:INSERT INTO 表名(字段名1 , 字段名2, )VALUES (表达式1 ,表达式2,)例如,有下列语句:INSERT INTO 学生(学号,姓名,专业) VALUES(040501,朱碧春,计算机软件)其功能是向“学生”表中插入一条记录,并给学号、姓名和专业字段赋值。 3修改记录格式:UPDATE 表名 SET 字段名1 = 表达式1,字段名2=表达式2

10、 WHERE 条件164删除记录 格式:DELETE FROM 表名 WHERE 条件例如,有以下语句:DELETE FROM 学生 WHERE 专业=经济管理其作用是从“学生”表中删除所有“经济管理”专业的学生。17ADO.NET对象及其编程1Connection对象及其使用 在ADO.NET中,通过在连接字符串中提供必要的身份验证信息,使用Connection对象连接到特定的数据源,该对象主要保存了有关数据库服务器的信息,用于打开和关闭与数据库的连接。属性:ConnectionString方法:Open() Close()18ADO.NET对象及其编程 【例14-1】 编写一个用来测试连接

11、的应用程序,用来建立与当前目录下的Microsoft Access 2002数据库Student.mdb的连接。程序的设置界面如图14-3所示,程序的运行界面如图14-4所示。19图14-3 程序设计界面 图14-4 程序运行界面 202Command对象及其使用(1)Command对象的常用属性 CommandType属性 CommandText属性 CommandTimeout属性 Connection属性 212Command对象及其使用(2)Command对象的常用方法 Prepare方法 格式:public void Prepare( ); ExecuteNonQuery方法 格式:

12、public int ExecuteNonQuery(); 执行Transact-SQL INSERT、DELETE、UPDATE及SET语句等命令,返回值为受影响的行数。 ExecuteReader方法 格式: public OleDbDataReader ExecuteReader(); 常用来执行返回数据集结果的命令。如Select语句22 【例14-2】 已知在应用程序当前目录下,有一个名为Student.mdb的数据库,该数据库中有一个名为student的表,表中的数据如图14-5所示。请使用Command对象执行SQL命令向表中插入一个学生的信息,学生数据如下: 01010106

13、张和平 男 010101 1985-7-28 安徽无为 插入后,student表中的内容如图14-6所示。 23图14-5 插入前的student表中的数据 图14-6 插入后的student表中的数据 243DataReader对象及其使用 ADO.NET的DataReader对象可以从数据库中检索只读、只进的数据流,实现对数据源中的数据高速、只向前的访问。(1)DataReader对象的常用属性 FieldCount属性 RecordsAffected属性25(2)DataReader对象的常用方法 Read方法 格式:public bool Read(); 使DataReader对象前进

14、到下一条记录 Close方法 格式:public void Close(); 关闭DataReader对象 Get方法 格式:public Get (int ordinal); 从ordinal指定的列中读取数据26 【例14-3】 已知在应用程序当前目录下,有一个名为Student.mdb的数据库,该数据库中有一个名为student的表。请编写一个程序用来从该表中读取所有男生的数据,并显示出来。程序的设计界面如图14-7所示,程序的运行界面如图14-8所示。程序运行时单击【连接并读取】按钮,将会把所有男生的数据显示在窗体上。 27图14-7 程序设计界面 图14-8 程序运行界面 284Da

15、taAdapter对象及其使用 DataAdapter通过使用Command和Connection对象在数据源和数据集(DataSet)两者之间构成一座桥梁。即结合DataSet使用,使得DataSet“连接”到数据源中,以便检索和保存数据。 本质上DataAdapter是容器,它含有4个预先配置好的Command实例,即SelectCommand、InsertCommand、DeleteCommand和UpdateCommand。(1)DataAdapter对象的常用属性 SelectCommand属性 InsertCommand属性 UpdateCommand属性 DeleteComman

16、d属性 29(2)DataAdapter对象的常用方法 Fill方法 格式:public int Fill(DataSet dataSet, string srcTable); 从参数srcTable指定的表中提取数据以填充数据集 Update方法 格式1:public override int Update(DataSet dataSet); 把对参数dataSet所指定的数据集进行的插入、删除等操作更新到数据源中。该方法用于数据集中只有一个表。 格式2:public override int Update(DataSet dataSet,string Table); 适用于数据集中存在多个

17、表的情况。305DataSet对象及其使用 (1)DataSet对象的组成 DataTable对象、DataRelation对象、DataColume对象、DataRow(2)DataSet对象的填充 调用DataAdapter对象的Fill方法,使用DataAdapter对象的SelectCommand的结果来填充DataSet对象。(3)DataSet对象的访问 格式1:数据集对象名.Tables“数据表名”.Rowsn“列名” 格式2:数据集对象名.Tables“数据表名”.Rowsn.ItemsArrayk 【例14-4】 使用DataAdapter和DataSet对象重新实现例14-

18、3的功能。31(4)向DataSet对象中添加行 DataRow MyDR=MyDs.Tables“Student”.NewRow(); MyDR“StudentID”=“01000102”; MyDR“Birthday”=#1983-5-18#; MyDS.Tables“Student”.Rows.Add(MyDR);(5)从DataSet对象中删除行 MyDs.Tables“Student”.Rows4.Delete();(6)修改DataSet对象中的数据 MyDs.Tables“Student”.Rows4“Native”=“江苏南京”;(7)利用DataSet对象更新数据源 利用Da

19、taAdapter对象的Update方法。3233数据绑定在Windows窗体应用程序中,几乎每个商业应用程序都需要从某类数据源中读取信息,而实现这一功能的通常方式是采用数据绑定。数据绑定是指将控件的某些属性值与数据集中的数据元素连接在一起,控件的属性变化会反映到数据集中,反之也一样。数据绑定的好处是可以大大简化数据的展示,此外对绑定的统一管理可以使界面元件能同步更新,实现记录向前向后浏览时的自动同步更新。34数据绑定有两种类型的数据绑定:简单绑定和复杂绑定。简单数据绑定是指将一个控件和单个数据元素(如数据表的列值)进行绑定,大多数Windows窗体控件如文本框控件都具有这个能力。复杂数据绑定

20、指将一个控件和多个数据元素进行绑定,具有该能力的有DataGrid、ListBox和ComboBox等控件。35数据绑定对于控件的简单数据绑定,编程实现时是直接指定该控件的DataBindings属性,它是一个集合类型,存储的是Binding类对象。只要调用DataBindings集合的Add方法即可加入新的绑定对象,如:textBox1.DataBindings.Add(Text, dataSet1, stuents.studentno); 或Binding newBinging = new Binding(Text, dataSet1, stuents.studentno);textBox1.DataBindings.Add(newBinding);36 【例14-6】 已知在应用程序当前目录下,有一个名为Student.mdb的数据库,该数据库中有一个名为student的表,请编写一个浏

温馨提示

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

评论

0/150

提交评论