C#课件S09数据库编程.ppt_第1页
C#课件S09数据库编程.ppt_第2页
C#课件S09数据库编程.ppt_第3页
C#课件S09数据库编程.ppt_第4页
C#课件S09数据库编程.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

中国铁道出版社,第9章 数据库编程,C#编程语言基础和应用 套系名称:高等学校计算机类课程应用型人才培养规划教材 书号:978-7-113-13535-5 版次:1-1 开本:16开 页码:300页 作者:张世明 朱彬 出版社:中国铁道出版社 出版时间:2011-10-01 定价: 元 策划编辑:严晓舟 责任编辑:周海燕 适用专业:通用专业 适合层次:高等学校 课程类别:小公共 课程分类:程序设计 感谢“教宝网”()为本课件制作提供资助。 尊敬的读者: “教宝网”()为教育门户网站, 将在2013年6月正式上线,届时谢谢光顾并提出宝贵意见! “教宝网”()全体同仁敬上,内容要点,SQL Server数据库管理 数据库表管理 连接数据库 执行SQL命令 数据读取器和数据集 数据适配器 显示数据 数据集设计器,中国铁道出版社,,9.1 SQL Server数据库管理,SQL Server的主要功能管理数据库及数据库对象,SQL Server Management Studio是SQL Server数据库重要的组件,用户可以通过该工具完成SQL Server数据库的主要管理。 9.1.1 Management Studio环境 Microsoft SQL Server Management Studio是一个功能强大且灵活的工具。 安装好SQL Server 2008 数据库之后,打开SQL Server Management Studio工具,可参考以下操作步骤进行。 (1)单击【开始】【所有程序】【Microsoft SQL Server 2008】【SQL Server Management Studio】,启动SQL ServerManagement Studio工具。 (2)在“连接到服务器”对话框中,验证默认设置,单击【连接】按钮。 (3)通常SQL Server Management Studio中将显示三个组件窗口。,中国铁道出版社,,9.1 SQL Server数据库管理,“已注册的服务器”窗口,列出的是经常管理的服务器。可以在此列表中添加和删除服务器。如果未显示所需的服务器,请在“已注册的服务器”中,右击选择“更新本地服务器注册”菜单命令。 “对象资源管理器”窗口,是服务器中所有数据库对象的树视图。此视图可以包括SQL Server数据库引擎、分析服务、报表服务、集成服务和SQL Server Mobile的数据库。对象资源管理器包括与其连接的所有服务器的信息。打开SQL Server Management Studio时,系统会提示将对象资源管理器连接到上次使用的设置。可以在“已注册的服务器”组件中双击任意服务器进行连接,但无需注册要连接的服务器。 “文档窗口”,是SQL Server Management Studio中的最大部分。文档窗口可能包含查询编辑器和浏览器窗口。,中国铁道出版社,,9.1 SQL Server数据库管理,9.1.2 添加和删除数据库 通过Management Studio可以图形化管理器以及命令行的方式创建数据库。 1.图形化创建数据库 (1)登录到Management Studio后,在“对象资源管理器”里右键单击【数据库】节点,弹出快捷菜单,选择【新建数据库】命令; (2)给数据库定义一个名称,所有者选择默认即可。 (3)单击【确定】按钮,管理器就开始创建数据库。 2.命令行创建数据库 (1)登录Management Studio,在工具栏上单击“新建查询”按钮,就可以图中的光标处手动写入代码。 (2)在查询界面中输入SQL代码 CREATE DATABASE (3)选中所有的代码,单击Management Studio工具栏上的【执行】按钮或者直接使用快捷键【F5】即可执行。,中国铁道出版社,,9.1 SQL Server数据库管理,9.1.3 备份和还原数据库 数据库备份和恢复对于保证系统的可靠性具有重要的作用。经常性的备份可以有效的防止数据丢失,能够把数据库从错误的状态恢复到正确的状态。如果用户采取适当的备份策略,就能够以最短的时间使数据库恢复到数据损失量最少的状态。 SQL Server提供了“分离/附加”数据库、“备份/还原”数据库、“复制数据库”等多种数据库的备份和恢复方法。 分离数据库就是将某个数据库从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。,中国铁道出版社,,9.1 SQL Server数据库管理,1.分离数据库 (1)在启动Management Studio并连接到数据库服务器后,在对象资源管理器中展开服务器节点。在数据库对象下找到需要分离的数据库名称。右键单击数据库,在弹出的快捷菜单中选择【属性】项,则数据库属性窗口被打开。 (2)在“数据库属性”窗口左边【选择页】下面区域中选定【选项】对象,然后右边区域的【其它选项】列表中找到【状态】项,单击【限制访问】文本框,在其下拉列表中选择“SINGLE_USER”。 (3)单击【确定】按钮后将出现一个消息框,通知我们此操作将关闭所有与这个数据库的连接,是否继续这个操作。 (4)单击【是】按钮后,数据库名称后面增加显示“单个用户”。右键单击该数据库名称,在快捷菜单中选择【任务】的二级菜单项【分离】。出现“分离数据库”窗口。 (5)在分离数据库窗口中列出了我们要分离的数据库名称。请选中【更新统计信息】复选框。若“消息”列中没有显示存在活动连接,则“状态”列显示为“就绪”;否则显示“未就绪”,此时必须勾选“删除连接”列的复选框。 (6)分离数据库参数设置完成后,单击【确定】按钮,就完成了所选数据库的分离操作。,中国铁道出版社,,9.1 SQL Server数据库管理,2.附加数据库 (1)将需要附加的数据库文件和日志文件拷贝到某个已经创建好的文件夹中。假定这两文件已拷贝到安装SQL Server时所生成的目录DATA文件夹中。 (2)在启动Management Studio并连接到数据库服务器后,在对象资源管理器中展开服务器节点,右击数据库对象,并在快捷菜单中选择【附加】命令,打开“附加数据库”窗口。 (3)在“附加数据库”窗口中,单击页面中间的【添加】按钮,打开定位数据库文件的窗口,在此窗口中定位刚才拷贝到SQL Server的DATA文件夹中的数据库文件目录,选择要附加的数据库文件(后缀MDF)。 (4)单击【确定】按钮就完成了附加数据库文件的设置工作。这时,在附加数据库窗口中列出了需要附加数据库的信息。如果需要修改附加后的数据库名称,则修改“附加为”文本框中的数据库名称。这里均采用默认值,单击确定按钮,完成数据库的附加任务。,中国铁道出版社,,9.2 数据库表管理,关系型数据库中每一个关系都体现为一张表,表是用来存储数据和操作数据的逻辑结构。表是关系型数据库的核心内容。 9.2.1 创建表 (1)单击【开始】【程序】【Microsoft SQL Server 2008】【SQL Server Management Studio】命令,打开“连接到服务器”界面。 (2)选择正确的“服务器名称”、“身份验证”,输入正确的用户名称、密码。 (3)登录到Management Studio 的管理界面。 (4)打开【数据库】【demo】节点,展开树状结构。 (5)右键单击【表】节点,弹出快捷菜单,选择【新建表】命令。 (6)单击【属性】标签页,在“名称”一栏输入“数据表名”。 (7)在列名中输入“字段名”,数据类型下拉菜单中选择“类型”。 (8)单击工具栏中【保存】按钮,将更改的结构保存。 如需要修改表的结构其操作如下:选择【数据库】【demo】【表】【student】节点,点击右键选择快捷菜单【设计】,进入设计界面进行修改。,中国铁道出版社,,9.2 数据库表管理,9.2.2 键和索引 数据库中的索引使您可以快速找到表或索引视图中的特定信息。 索引包含从表或视图中一个或多个列生成的键,以及映射到指定数据的存储位置的指针。通过创建设计良好的索引以支持查询,可以显著提高数据库查询和应用程序的性能。索引可以减少为返回查询结果集而必须读取的数据量。索引还可以强制表中的行具有唯一性,从而确保表数据的数据完整性。 创建索引的步骤如下: (1)在对象资源管理器中,右键单击要为其创建索引的表,再单击【设计】。此时,将在表设计器中打开该表。 (2)在表设计器菜单上,单击【索引/键】。 (3)在“索引/键”对话框中,单击【添加】。 (4)在【选定的主/唯一键或索引】列表中选择新索引,然后在右侧的网格中设置该索引的属性。 (5)为索引指定任何其他设置,再单击【关闭】。,中国铁道出版社,,9.3 连接数据库,9.3.1 ADO.NET概述 在ADO.NET中,通过数据提供程序所提供的应用程序编程接口(API),可以轻松地访问数据库资源。.NET Framework数据提供程序是专门为数据操作以及快速、只进、只读访问数据而设计的组件。Connection对象提供到数据源的连接。 使用Command对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader可从数据源提供高性能的数据流。最后,DataAdapter在DataSet对象和数据源之间起到桥梁作用。DataAdapter 使用Command 对象在数据源中执行SQL命令以向DataSet中加载数据,并将对DataSet中数据的更改协调回数据源。,中国铁道出版社,,9.3 连接数据库,使用ADO.NET访问数据库的一般步骤: (1)根据使用的数据源,确定使用.NET框架数据提供程序。 (2)建立与数据源的连接,需要使用DbConnection对象。 (3)执行对数据源的操作命令,通常是SQL命令,需要使用DbCommand对象。 (4)使用数据集对获得的数据进行操作,需要使用DbDataReader、DataSet等。 (5)向用户显示数据,需要使用数据控件。,中国铁道出版社,,9.3 连接数据库,9.3.2 数据库连接类DbConnection DbConnection类表示到数据库的连接,是抽象类,为各派生类定义统一的接口。 DbConnection主要属性和方法,中国铁道出版社,,9.4 执行SQL命令,结构化查询语言(Structured Query Language,简称SQL)具有功能丰富、语言简洁、使用灵活等特点,大多数运行于服务器上数据库管理系统都支持SQL。通常对数据库中表的操作都是通过执行SQL命令来实现的。 9.4.1 数据库命令类DbCommand DbCommand主要属性和方法,中国铁道出版社,,9.4 执行SQL命令,9.4.2 SQL参数类DbParameter 通常表中插入的数据是用户输入的,删除记录的条件也是用户输入的,在上面的例子中已经讲述了连接数据库和执行SQL命令。在本节中将介绍执行带参数的SQL命令。类DbParameter表示DbCommand的参数,还可表示该参数到一个DataSet列的映射。 DbParameter类的主要属性和常用方法:,中国铁道出版社,,9.5 DbDataReader和DataSet,DbDataReader和DataSet都可以用来检索数据。在决定应用程序应使用DbDataReader还是应使用 DataSet时,应考虑应用程序所需功能类型。 9.5.1 数据读取器DbDataReader 使用DbDataReader检索数据包括创建DbCommand对象的实例,然后通过调用DbCommand的ExecuteReader创建一个DbDataReader,以便从数据源检索行。 如果不需要DataSet所提供的功能,则可以通过使用DbDataReader以只进、只读方式返回数据,从而提高应用程序的性能。,中国铁道出版社,,9.5 DbDataReader和DataSet,9.5.2 数据集DataSet概述 DataSet的作用就是提供数据缓存。它的设计目标是能够实现独立于具体数据源的数据访问,因此可以同各种数据提供组件进行连接。 一般可以调用DataAdapter组件的Fill方法将数据提供组件获得的数据填充到DataSet中去,当然也可以编写代码来实现数据的填充。 需要数据的控件,如DataGrid、ListBox等都可以通过数据绑定方法取得DataSet中的数据。 DataSet主要属性:,中国铁道出版社,,9.5 DbDataReader和DataSet,9.5.3 数据表、数据列和数据行 Tables是DataSet最基本的属性,它代表该数据集中的数据表集合。.NET中使用DataTable组件类封装数据表。 DataTable主要属性: DataRow类代表一个数据行,是构成DataTable中数据的基本单位(Rows属性的类型DataRowCollection就是DataRow的集合)。,中国铁道出版社,,9.5 DbDataReader和DataSet,9.5.4 构建表结构 DataTable表示内存中数据的一个表,它完全是在内存中的一个独立存在,包含了这张表的全部信息。DataTable可以是从通过连接从数据库中读取出来形成的一个表,一旦将内容读到DataTable中,此DataTable就可以跟数据源断开而独立存在;也可以是完全由程序自己通过代码来建立的一个表。 在程序中创建DataTable对象可以使用相应的DataTable构造函数。创建一个表名为TableName的数据表,实现代码如下所示: DataTable table = new DataTable(“TableName“); 使用DataTable构造函数初次创建DataTable时,是没有结构的。没有结构的DataTable数据表示没有办法使用的, 因此要在使用这种DataTable数据表之前要定义表的结构,必须创建DataColumn对象并将其添加到表的Columns集合中。把某一列作为主键也是常用的功能。,中国铁道出版社,,9.5 DbDataReader和DataSet,9.5.5 编辑数据 在为DataTable定义了结构之后,也就是设置好了需要的列名以后,就可以可通过将DataRow对象添加到表的Rows集合中来将数据行添加到表 中。与添加DataColumn类似,同样可以通过使用DataRow构造函数,或者通过调用表的Rows属性的Add方法,可在表内创建DataRow 对象。以下代码用用循环的方式产生10行值,添加到table表中。,中国铁道出版社,,9.5 DbDataReader和DataSet,9.5.6 数据行状态 DataTable中引入了一个“行状态”的概念(事实上该属性属于DataRow类)。每一个DataRow都有一个状态标志,可以通过DataTable.Rowsi.RowState查看,对DataRow的不同操作将导致该行处于不同的状态,同时,不同的状态又导致保存数据时的不同行为。DataRow对象的状态为DataRowState值之一。 DataRow状态:,中国铁道出版社,,9.6 数据适配器,9.6.1 DbDataAdapter概述 DataSet是数据的内存驻留表示形式,它提供了独立于数据源的一致关系编程模型。DataSet表示整个数据集,其中包含表、约束和表之间的关系。由于DataSet独立于数据源,DataSet可以包含应用程序本地的数据,也可以包含来自多个数据源的数据。与现有数据源的交互通DataAdapter来控制。 DbDataAdapter主要属性: DbDataAdapter主要方法:,中国铁道出版社,,9.6 数据适配器,9.6.2 填充数据 string queryString =“SELECT * FROM student“; DbCommand command = factory.CreateCommand(); / 创建DbCommand. command.CommandText = queryString; command.Connection = connection; DbDataAdapter adapter = factory.CreateDataAdapter(); / 创建DbDataAdapter. adapter.SelectCommand = command; DataTable table = new DataTable(); / 填充DataTable. adapter.Fill(table); foreach (DataRow row in table.Rows) / 显示数据. string line = textBox1.Text; foreach (DataColumn column in table.Columns) line =line+“ “+ rowcolumn.ToString(); textBox1.Text = line + “nr“; ,中国铁道出版社,,9.6 数据适配器,9.6.3 获取表架构 string queryString = “select * from student“; DbCommand command = connection.CreateCommand(); command.CommandText = queryString; command.CommandType = CommandType.Text; connection.Open(); DbDataReader reader = command.ExecuteReader(); DataTable schema = reader.GetSchemaTable(); foreach (DataRow row in schema.Rows) String line = “; foreach (DataColumn col in schema.Columns) line = col.ColumnName + “ = “ + rowcol ; textBox1.Text = textBox1.Text + line + “rn“; ,中国铁道出版社,,9.6 数据适配器,9.6.4 命令生成类DBCommandBuilder 提供DbCommandBuilder类是为了方便提供程序编写者创建自己的命令生成器。通过继承此类,开发人员可在自己的代码中实现提供程序特定的行为。DbDataAdapter不会自动生成为了使对DataSet所作的更改和相关联的数据源协调起来所必须的SQL语句。但是,如果设置了DbDataAdapter的SelectCommand属性,就可以创建DbCommandBuilder对象来自动生成SQL语句进行单表更新。然后,DbCommandBuilder将生成其他任何未设置的SQL语句。 9.6.5 更新数据库 DataRow newRow = table.NewRow(); /插入一行 newRow“id“ = 111111; newRow“name“ = “tom“; table.Rows.Add(newRow); adapter.Update(table);,中国铁道出版社,,9.7 显示数据,9.7.1 数据表格控件DataGridView 使用DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据。DataGridView 控件替换了DataGrid控件并添加了功能,但是也可选择保留DataGrid控件以备向后兼容和将来使用。使用DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据。将数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需设置DataSource属性即可。在绑定到包含多个列表或表的数据源时,只需将DataMember属性设置为指定要绑定的列表或表的字符串即可。 例: adapter.Fill(table); dataGridView1.DataSource = table;,中国铁道出版社,,9.7 显示数据,9.7.2 控制DataGridView外观和行为 DataGridView允许自由选择。用户可以突出显示单元格或单元格组,可以一次突出显示所有单元格(通过单击网格右上角的方块),还可以突出显示一行或多行(通过在行标题列中单击)。根据选择模式,用户甚至能够通过选择列标题来选择一列或多列。通过使用DataGridViewSelectionMode枚举中的某个值来设置SelectionMode属性,可以控制此行为,如下所述: (1)CellSelect:可选择单元格不能选择整个行或标题。如DataGridView.MultiSelect为True,则用户可以选择多个单元格。 (2)FullColumnSelect:单击列标题只能选择整个列。如果DataGridView.MultiSelect为True,则用户可以选择多个列。使用此模式时,单击列标题不会对网格进行排序

温馨提示

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

评论

0/150

提交评论