《数据库操作》PPT课件.ppt

上传人:za****8 文档编号:3173870 上传时间:2019-12-06 格式:PPT 页数:78 大小:1,022.51KB
返回 下载 相关 举报
《数据库操作》PPT课件.ppt_第1页
第1页 / 共78页
《数据库操作》PPT课件.ppt_第2页
第2页 / 共78页
《数据库操作》PPT课件.ppt_第3页
第3页 / 共78页
点击查看更多>>
资源描述
第9章ADO.NET与数据库操作,从编程角度看数据库访问机制ADO.NET主要的类利用可视化对象直接建立数据访问使用OleDb数据库访问访问SQLServer数据库DataSet数据绑定及编辑DataGridView控件访问SQLServer数据库的视图DataSet数据绑定及编辑,中国海洋食品网鲍鱼海参大渔场,1.从编程角度看数据库访问机制,使用现代的开发工具,程序员对数据库的访问一般都是间接的。即通过一个中间件(数据库访问接口)访问数据库。这样做的好处是程序员不必知道数据库的种类及细节,只需熟悉数据库访问接口和SQL语言,就能以一致的方式访问各种数据库。,访问模式,数据库SQLSERVERACCESSORACLEMYSQL文本文件,数据访问接口ADOADO.NETJDBC,数据库连接对象,SQL命令对象,查询结果集对象,数据绑定及显示控件,ADO.NET结构,使用统一的SQL数据访问模型实现对各种使用SQL语句的数据库的数据访问支持。,ADO.NET对象模型,2.NET关于数据库主要的类,.NET有关数据库访问的中间件叫ADO.NET,它是ADO的改进ADO.NET有关数据库访问的类分为两组:一组是通用的数据库访问类,可以访问所有主流的数据库,但一般用于Access等。另一组是针对具体数据库专门优化了访问性能的类,专用于SQLServer或Oracle数据库,是我们主要使用的方式。,.Net中SQLServer数据库的分类,.Net提供了3种与SQLServer数据库的连接形式。分别为:SQLServer:与SQLServer服务器上的数据库连接,这是主流的、也是我们采用的。SQLServerCompact3.5:更简单的SQLServer数据库版本,是基于文件的数据库。SQLServer数据库文件:用于和SQLServerExpress数据库文件建立连接。本书均用SQLServerExpress(需要安装),我们不使用该方式,本章与书中差异较大!,通用的数据库访问类,名称空间:Syetem.Data.OleDbOleDbConnection:数据库连接/关闭OleDbCommand:发送SQL命令或调用存储过程、视图等OleDbDataAdapter:存储数据结果集并填充DataSetOleDbDataReader:存储只能向前读的数据结果集,速度快(保持连接)名称空间:Syetem.DataDataSet:是内存中的“关系数据库”,数据由OleDbDataAdapter填充,也可以自己添加删除。在断开数据库连接的情况下,DataSet仍然存在,SQLServer专用访问类,名称空间:Syetem.Data.SqlClientSqlConnection:数据库连接/关闭SqlCommand:发送SQL命令或调用存储过程、视图SqlDataAdapter:存储数据结果集并填充DataSetSqlDataReader:存储只能向前读的数据结果集,速度快名称空间:Syetem.DataDataSet:实际上是通用的,与前面相同,通用的数据库访问实例对象间的关系,各种数据库,AOD.NET,OleDbConnection,OleDbCommand,OleDbDataAdapter,OleDbDataReader,DataSet,连接,SQL命令,查询,结果集,结果集,填充,数据绑定及显示控件,绑定,结果集,绑定,用UML可表示为顺序图,SQLServer数据库访问实例对象间的关系,SQLServer,AOD.NET,SqlConnection,SqlCommand,SqlDataAdapter,SqlDataReader,DataSet,连接,SQL命令,查询,结果集,结果集,填充,数据绑定及显示控件,绑定,结果集,绑定,用UML可表示为顺序图,3.利用可视化对象直接建立数据访问,数据访问可视化工具,操作演示,新建一个Windows应用程序在菜单“视图”中打开“服务器资源管理器”确保本机的SQLSERVER服务已开启,数据库可访问。,连接数据库,右键点击“数据连接”,选择“添加连接”或“创建新SQLSERVER数据库”可以在此选择数据库服务器、验证方式、数据库等。可点击“测试连接”可点击“更改”选择数据库访问模式,前图中点击“更改”按钮,完成后的情况,连接成功,则会出现选择的数据库及其中的数据表等。可以在此进行添加、修改等对数据库的各种操作,新建数据库,如果不是使用现有数据库,也可以新建立自己的数据库右键单击“数据连接”,选择“创建新的SQLServer数据库”命令,弹出新建窗口,点“确定”后就建立了一个空数据库在“服务器资源管理器”的“数据连接”项下出现该数据库右键单击“表”,选择“添加新表”命令,然后进行表中列的添加,包括列名、数据类型等单击“保存”按钮,保存名为Class1的表,在“表”列表中,出现Class1表。右键单击Class1,选择“显示表数据”(也许是“检索数据”)命令,然后可以进行记录的添加信息添加完后,在窗口边缘空白部分右键选择“执行SQL”,即可将数据添加到表中,为项目添加数据源,建立好连接后,可为项目添加数据源数据源为项目获取数据的来源。作用是将数据和数据显示控件绑定到一起,便于显示或编辑数据。在“数据”菜单中选择“添加新数据源”,按向导步骤进行,选择希望显示的表、字段等。可以添加多个数据源,添加数据源之后的情况,显示数据并运行,在数据源窗口,将需在界面中显示的数据及其使用的控件,拖放到窗体界面中即可,4.使用OleDb数据库访问,使用“半自动”的方式,主要过程:选择数据源:选为“MicrosoftAccess数据库文件”,则采用OleDb方式。建立连接:OleDbConnection(可以用对象浏览器看看OleDbConnection类的属性和方法)获得数据:OleDbDataAdapter返回查询结果:DataSet绑定到数据控件:DataGrid,建立与现有数据库的连接,右键单击“数据连接”,选择“添加连接”命令,弹出窗口,选择数据库类型。,点“继续”,出现添加连接窗口“浏览”按钮找到数据库文件“高级”按钮可以打开具体连接属性的窗口,一般不用。“测试连接”可以先看看连接上没有“确定”,完成添加连接,此时“服务器资源管理器”中出现了我们连接的数据库及其相关内容我们可以通过此连接,开发访问该数据库的程序,使用OleDbDataAdapter访问数据库,如果希望自己来通过应用程序操作数据库,需要先在工具箱中添加OleDbDataAdapter等相关组件如果是使用SQLServer数据库,应该用SqlDataAdapter,添加OleDbDataAdapter,打开“工具箱”右键单击“数据”选择“选择项”出现“选择工具箱”窗口添加OleDbDataReader组件可同时选择需要添加的其它组件,向Form中加入OleDbDataAdapter,增加组件后的工具箱如右图将OleDbDataAdapter拖到窗口中结果显示在下面,自动出现配置向导,点“下一步”后,由于数据库不在当前项目中,会询问是否复制到项目中。出现命令类型窗口,继续下一步,出现“生成SQL语句”窗口点“查询生成器”“高级选项”按钮可以选择使用哪些语句类型,先选择具体的表,点“添加”也可以选择多个表,选好后点“关闭”,选择要显示的字段,会自动生成查询语句点“执行查询”可以看到结果,如果点“高级选项”会弹出选择窗口可以根据需要的数据库操作进行选择完成SQL语句配置后继续下一步会出现结果窗口,也可直接点“完成”。,完成后会自动添加oleDbConnection组件下一步需要将当前数据适配器关联到Dataset对象右键单击“oleDbDataAdapter1”,选择“生成数据集”,出现配置窗口,此处有两个选择:“现有”为已经配置好的“新建”是建立一个新的DataSet确定后会自动加入一个DataSet,到了这一步,已经可以将对数据库的查询结果关联到DataSet了我们知道,DataSet是内存中的一个虚拟数据库,严格说是一个数据集后面的工作是要将记录在具体的数据绑定控件中显示出来最常用的数据显示控件是DataGridView其实象文本框、标签、选择框之类的都可以绑定到DataSet,绑定到DataGridView,向窗体中添加一个DataGridView控件,会出现设置窗口如果没有出现窗口,可在DataSource属性进行设置先选择数据源,展开数据源,选一个即可这里选的是“项目数据源”,选择后会增加一个“公司BindingSource”项如果选“Form1列表实例”则无,需要再设置列,文本框的绑定,文本框只能显示DataSet中当前记录的某一字段(列)的值通过选择属性(DataBindings)中的Text,选择其中的某一列进行绑定这里选了“公司名称”,填充数据集,最后一步工作,就是让数据适配器填充数据集对象dataSet为当前窗体的Load事件添加如下代码:this.oleDbDataAdapter1.Fill(this.dataSet11,0,0,“公司);Fill()方法用于填充数据集对象参数1:要填充的数据集;参数2:从表中第几个记录开始,0为第一个;参数3:返回多少条记录,0表示全部;参数4:数据来源的表的名称。,运行结果,看看一些关键语句,需要引用usingSystem.Data;我们添加了代码:oleDbDataAdapter1.Fill(dataSet1,0,0,公司);另外系统自动写了很多代码,5.访问SQLServer数据库,使用SQLServer数据库时,应使用针对SQLServer数据库优化了的一组组件这里我们全部通过自己写代码的方式,完成下列工作:(例题UseSql)建立连接:SqlConnection获得数据:SqlDataAdapter返回查询结果:DataSet绑定到数据控件:DataGridView,访问SQL数据库,要使用优化的SQLSERVER对象访问数据库,需要引入以下名字空间:usingSystem.Data;usingSystem.Data.SqlClient;,SqlConnection对象,ADO.NET使用SqlConnection对象与SQLServer进行连接。连接字符串的常用形式有两种:(1)使用Windows集成安全身份验证,例如:stringconnStr=IntegratedSecurity=SSPI;Database=MyDatabase.mdf;Server=localhost;(2)使用用户名、密码形式,例如:stringconnStr=DataSource=SDXG;InitialCatalog=park;UserID=sa;Password=saas;,通过代码创建SqlConnection对象,SqlConnectionconn=newSqlConnection(connString);或者:SqlConnectionconn=newSqlConnection();conn.ConnectionString=connString;打开连接:conn.Open();注意,使用完后要及时关闭连接:conn.Close();,SqlDataAdapter对象,SqlDataAdapter通过无连接的方式完成数据库和本地DataSet之间的交互。通过查询语句和SqlConnection对象,生成SqlDataAdapter实例访问数据库并获得数据。例如:stringstrsql=select*fromusers;da=newSqlDataAdapter(strsql,conn);,SqlDataAdapter对象还可以通过SelectCommand、InsertCommand、UpdateCommand和DeleteCommand属性为后台数据库提供对应的操作命令,并传递需要的参数。,DataSet对象,使用DataSet对象可以完成各种数据操作创建DataSet后,使用SqlDataAdapter对象把数据导入到DataSet中。通过Fill方法将数据填充到DataSet中的某个表中。例如:da.Fill(ds,“newUser”);这里的表名可以随便起,数据绑定,数据绑定是指在程序运行时,窗体上的控件自动将其属性和数据源关联在一起。Windows窗体提供了两种类型的数据绑定:简单数据绑定和复杂数据绑定。简单数据绑定:将控件的某个属性绑定到单个值,一般将这些控件绑定到数据库中某个记录的一个字段。复杂数据绑定:将一个控件绑定到多个值,例如DataGridView控件、ListBox控件等。,实现数据绑定的方式,有3种实现方法:在设计界面下通过鼠标拖放实现常用属性的数据绑定;在设计界面下设置控件的DataBindings属性,然后利用可视化界面实现各种属性的数据绑定;直接编写代码实现数据绑定。,直接编写代码实现数据绑定,不论采用哪种方式,从本质上来讲,都是利用BindingSource组件实现数据绑定的。用法:(1)将BindingSource组件绑定到实际数据源(2)将控件绑定的数据源设置为BindingSource例如:BindingSourcebs=newBindingSource();bs.DataSource=ds.TablesnewUser;dataGridView1.DataSource=bs;,6.DataSet数据绑定及编辑,DataSet类是ADO.NET中功能非常强大的一个类DataSet可以脱离数据库而存在,DataSet中的数据即可以是来自数据库(由DataAdapter填充),也可以来自别的数据源,甚至可以是自己创建数据源,DataSet工作原理,实际上DataSet可以看作是一个内存中的关系型数据库一个关系型数据库包括表、列、行、约束等,DataSet的体系结构正是如此DataSet类相当于一个“容器”,内含表的集合,表又内含列、行、约束的集合这些类的关系不是继承关系,而是组成关系,这些类之间的关系,下表只列出了一部分类和集合,数据更新,DataAdapter可以根据结果集的数据结构,自动创建出与之匹配的dataSet、dataTable、column、row、constraint对象,并把数据填到这些对象中DataSet实例中包含的数据发生更改后,此时调用DataAdapter.Update方法,DataAdapter将分析已作出的更改并执行相应的命令(INSERT、UPDATE或DELETE),并以此命令来更新数据库中的数据,主要的代码,/更新数据库sqlDataAdapter1.Update(dataSet1.TablesAuthors);/确认数据集的变化dataSet1.TablesAuthors.AcceptChanges();为例题UseSql添加一个按钮,并补充更新按钮,当用户在DataGridView中修改记录信息后,将改的更新到数据库。,7.DataGridView控件,当我们需要在界面中显示多条记录时,DataGridView是最常使用的一个控件。DataGridView是一个非常复杂的控件,使用好并不容易。数据的填充:可以直接绑定数据源从DataSet中获取可以通过编写代码手工填充数据,DataGridView的属性,实际上我们开发的软件一般不允许用户在DataGridView中随便乱操作。通常DataGridView只是用来显示数据DataGridView有一些AllowUserTo的属性,决定允许用户做哪些操作,禁止编辑DataGridView,不给用户提供Updata功能,也可通过属性设置禁止编辑:readonly=trueDataGridView的前身是DataGrid控件,新版的有一些变化,包括属性,看比较旧的书注意此问题。一些常用属性的使用,我们结合问题逐步介绍。,绑定数据时的默认设置,绑定了数据源,会自动为数据源中的每个字段单独创建一列。自动使用字段名称作为列标题。支持自动排序。在列标题中单击或双击,该字段中的值就会按升序或降序排序。支持自动调整列宽。在标题之间的列分隔符上双击,该分隔符左边的列就会自动按照单元格的内容展开或收缩。,标题及行列控制,DataGridView提供了两个重要的集合Columns和Rows,用于处理整个数据集。Columns:是表格中的所有列(字段)的集合,为DataGridViewColumn对象的集合。Rows:是表格中的所有行(记录)的集合,是DataGridViewRow对象的集合。每个DataGridViewRow对象又都包含一组DataGridViewCell对象。可以按使用数组的方式定位到集合的元素,DataGridViewColumncolumn=dataGridView1.Columns学号;if(column.HeaderText!=column.DataPropertyName)/让标题与绑定的字段名称相同column.HeaderText=column.DataPropertyName;elsecolumn.HeaderText=StudentID;,了解Command对象,我们对数据库的操作都是通过Command对象的SQL字串进行的:/设置SqlCommand对象SqlCommandSqlCommand1=newSystem.Data.SqlClient.SqlCommand();/执行的操作SqlCommand1.CommandText=SELECT*FROMAuthors;创建连接SqlCommand1.Connection=conn;执行命令,但不返回执行的表数据,只是操作行数SqlCommand1.ExecuteNonQuery();,SqlCommand对象主要的数据库操作方法,ExecuteNonQuery方法:该方法执行SQL语句的结果,但不返回命令执行的表数据,仅返回操作所影响的行数。ExecuteReader方法:返回一个SqlDataReader对象。ExecuteScaler()方法:该方法用于执行SELECT查询,返回结果为一个值的情况,比如用sum函数求和等。,6.访问SQLServer数据库的视图,我们将视图看作是驻留在数据库上的一个或多个SQL语句构成的“虚拟数据表”将它当一般的表来操作就可以访问视图的方法:通过“服务器资源管理器”先建立一个视图“MyView”然后用与访问数据表类似的方法访问该视图,差别只是将原来连接字符串中的表名改为视图名,不满足于只读,我还想多做点,添加和修改记录前提:在适配器配置向导的“高级选项”中没有去掉Insert、Updata等选择。原理:控件中显示的是dataSet中的内容,而dataSet与Adapter关联,Adapter又连接着实际的数据库操作:当对控件中的数据进行了改变,相应的dataSet等于也进行了更新,因此只要对Adapter提交更新(Updata)即可。,实战,在窗体中添加一个按钮在按钮的click方法中添加下列语句:this.oleDbDataAdapter1.Update(this.dataSet11);运行程序,修改一个值,然后点击该按钮,修改前,点击“Updata”后关闭程序,再次运行查看对应记录,会看到已经是更新后的结果了,添加新纪录,将记录移动到最后一行填写新的记录注意这个例子中“客户ID”是和客户表关联的,不能乱改也不能随便填,必须是现有的。完成后单击按钮,删除记录,DataGridView的行与列不支持手动删除操作,必须要使用代码来实现。在当前窗体的构造函数中添加如下代码。this.dataGridView1.AllowUserToDeleteRows=true;该属性表示DataGridView允许用户删除行。添加“删除”按钮,click方法添加如下代码:foreach(DataGridViewRowrindataGridView1.SelectedRows)dataGridView1.Rows.Remove(r);r表示选中的行,通过Remove()方法将该行删除。,运行程序选中dataGridView1中的任意一行单击“删除”按钮注意,此时只是在dataSet中删除了,原始数据库没有变还应该单击“更新设置”按钮,将刚才的删除操作的结果提交到数据库。不演示图片了,大家自己应该会做了,练习,在Books.mdb数据库添加一个新表在DataGrid中显示该表单击一button后,用dataSet对象和DataAdapter对象自动更新该表中的值/循环更改Authors表firstName字段的值foreach(DataRowrowindataSet1.TablesAuthors.Rows)rowfirstName=aa;,小结,本章对ADO.NET数据库编程的主要方面几乎都涉及到了由于课时关系不能详细介绍,只能给你们提供信息和基本的方法书中还有很多内容我们这里没有涉及对编程具体问题要靠自已去研究,作业,完成选课程序在资源管理器中建立数据库建立相应的表并输入一些记录建立数据库连接完成代码编写并调试提交实验报告(包括系统设计、必要的设计图、关键技术说明、代码及界面图等)到服务器(11.28截止)报告文件名格式“学号-姓名.DOC”,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!