Visual Basic.NET编程PPT电子课件教案-第19章 ADO.NET数据库编程.ppt_第1页
Visual Basic.NET编程PPT电子课件教案-第19章 ADO.NET数据库编程.ppt_第2页
Visual Basic.NET编程PPT电子课件教案-第19章 ADO.NET数据库编程.ppt_第3页
Visual Basic.NET编程PPT电子课件教案-第19章 ADO.NET数据库编程.ppt_第4页
Visual Basic.NET编程PPT电子课件教案-第19章 ADO.NET数据库编程.ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

第19章 ado.net数据库编程 19.1 什么是ado.net 19.2 ado.net实例 19.3 dataset类和相关类 19.4 datagrid和databindings 19.5 编制“迷你图书馆” 19.6 实训要求 19.1 什么是ado.net nado.net:active x data object。 n原理:用于数据库连接和数据处理 n连接数据库源 n提取数据集 n使用数据集处理数据 n更新数据库源 n关闭连接。 n四个“数据”控件:xxxconnection、 xxxcommand、xxxadapter、dataset。 n其它“数据”控件:dataview、datagrid、 databindings类 noledbconnection/sqlconnection:连接数据 源。前者用于各种数据库、后者专门用于ms-sql server。在工具箱|数据卡。 noledbcommand/sqlcommand:指定提取数 据的sql语句。在工具箱|数据卡。 noledbadapter/sqladapter:使用command的 sql语句提取数据。在工具箱|数据卡。 ndataset:提取数据的本机存放处。使用 xxxadapter创立/配置。 ndatagrid: 提取数据的显示控件。在工具箱 |windows窗体卡。 19.1 什么是ado.net 实例:使用vb.net操作ms-access数据库 。 n创建数据库:使用ms-access创建新数据库 db1.mdb,在其中创建表“学生”,其中有学号( 字符串)、姓名(字符串)、电话(长整数)。在 “学生”表中输入一些样板数据。 n使用vb.net创建新windows应用程序项目。 n打开窗体设计窗口 n打开工具箱的“数据”选项卡。 19.2 ado.net实例 n添加oledbconnection控件: oledbconnection1 n配置oledbconnection控件: n在其属性中点击“connectionstring” n单击“新建连接”,出现“数据库连接属性”窗口。 n点击“提供程序”卡,选择“ms jet 4.0 ole db provider”,单击“下一步”。 n转到“连接”卡,按“”按钮,选择db1.mdb。 n将用户名称/口令清空。 n单击“完成” 19.2 ado.net实例 n添加oledbcommand控件: oledbcommand1 n配置oledbcommand控件: n在属性窗口点击connection属性,选择现有的 oledbconnection1 。 n点击commandtext属性,出现查询生成器, n按“添加”添加“学生表” n按“关闭”按钮。 n“所有列”打勾,确定。如果希望列按某种顺序出 现,则按出现顺序打勾。 19.2 ado.net实例 n添加oledbdataadapter控件: oledbdataadapter1, 出现数据适配器配置向导。 n配置oledbdataadapter控件: n在“选择数据连接”页的下拉列表中选择刚才建立的 连接 n在“选择查询类型”页选择“使用sql语句”。 n在“生成sql语句”页,按“查询生成器”按钮,出现 查询生成器。 n按“添加”添加“学生表”,按“关闭”按钮。 n“所有列”打勾,确定。如果希望列按某种顺序出现 ,则按出现顺序打勾。下一步,完成。 19.2 ado.net实例 n生成数据集: n打开oledbdataadapter1的属性窗口 n在属性窗口下方单击“生成数据集” n一切使用默认,确定。 n说明:第一个默认数据集名是dataset11。 n注意:一个数据集可以包含多个表。可以将一个 数据表加入到一个现有的数据集中。默认表名是 dataset11.表名 19.2 ado.net实例 n添加datagrid控件: n打开工具箱的windows窗体卡,添加 datagrid控件datagrid1。 n打开datagrid1属性窗口,单击datasource 属性 n选择dataset11.学生。 19.2 ado.net实例 n添加代码: n打开代码窗口 n在form1的load事件处理过程中,添加代码如下 : oledbdataadapter1.fill(dataset11) n添加button控件: n打开工具箱的windows窗体卡,添加button控 件button1。 n属性text设置为“更新数据库”,click事件处理过 程代码是 oledbdataadapter1.update(dataset11) 19.2 ado.net实例 1、dataset类:数据集 n作用:是数据库数据在内存的拷贝,程序直接操作 的数据存放处。 n数据集可包括多个表(datatable类)。 n表由行集合(datarowcollection类)组成。 n行集合由行(datarow类)组成。 n行由列项目(datacolumn类)组成。 ntables属性: datatable类,是dataset中的数据 表。比如 dataset11.tables(“人员表”) 19.3 dataset类和相关类 2、datatable类 n作用:是数据库中的数据表,包括多行。比如 dim dt as datatable dt=dataset11.tables(“人员表”) nnewrow方法:按当前数据表的格式产生一个新行 (datarow类)。注意并未插入到表中。 dim dr as datarow dr = dataset11.tables(“人员表“).newrow nrows属性: datarowcollection类,是数据表中 的所有行。比如 dataset11.tables(“人员表”).rows 19.3 dataset类和相关类 3、datarowcollection类 n作用:是数据库中的数据表的若干行。每一行是 datarow。 ncount属性:是数据表中的行数。 dataset11.tables(“人员表“).rows.count nfind(val)方法:查询主码=val的行。如果不是查询 主码,此方法不能用。 nitem(i)方法:得到行集中第i行。 dim dr as datarow dim i as integer = 3 dr = dataset11.tables(“人员表“).rows.item(i) 19.3 dataset类和相关类 3、datarowcollection类 nremoveat(i)方法:删除第i行。 dataset11.tables(“人员表“).rows.removeat(i) nadd(datarow)方法:表末尾添加一行。 dim dr as datarow dr = dataset11.tables(“人员表“).newrow dr.item(”借书证号”)=“123456” dataset11.tables(“人员表“).rows.add(dr) 19.3 dataset类和相关类 4、datarow类 n作用:是数据库中的数据表的一行,包括多个列。 nitem属性:是行中的某一列项目。例子: dim dr as datarow dim dt as datatable dt = dataset11.tables(“人员表”) dr=dt.newrow dr.item(”借书证号”)=“123456” msgbox(dr.item(0) msgbox(dr.item(”借书证号”) 19.3 dataset类和相关类 4、datarow类 nrowstate:数据行状态,是datarowstate枚举类 型,枚举值有 datarowstate.deleted datarowstate.added datarowstate.unchanged,等等 ndelete()方法:将本数据行状态datarowstate的 值改变成datarowstate.deleted。 dim dr as datarow dr=dataset11.表1.rows.item(0) dr.delete() 19.3 dataset类和相关类 5、dataview控件 n作用:是数据表的一个视图,包括表的若干行。 n注意:没有可见的界面,在工具箱的数据卡中,不 是类似datagrid的控件。 ntable属性:指定连接的数据表。 n例子: dataview1.table=dataset21.借阅表 nrowfilter属性:行过滤器,选择显示的行。 n例子1: dataview1.rowfilter=“借书证号=001” 19.3 dataset类和相关类 n例子2:在行过滤器中使用变量s,s的值可变, dim s as string s=”001” dataview1.rowfilter= “借书证号=” & s & ” 19.3 dataset类和相关类 1、datagrid控件 n作用:同时显示数据表的多行。 ncurrentrowindex属性:当前行的行号,从0开 始计算。浏览记录时, currentrowindex会自动 调整。 n例子: datagrid1.currentrowindex 19.4 datagrid和databindings 2、databingings类 n作用:显示数据表的一行(当前行)。 n构造函数: new binding(控件属性名,数据表名,列名) n绑定例子: textbox1.databindings.add ( new binding(“text”, dataset11.人员表, “借书 证号”) ) n绑定例子说明:textbox1.text中会自动显示数据 表中的当前行。 19.4 datagrid和databindings 3、bingingmanagerbase类:跟踪数据源的当前行 。 n属性position是当前行号(从0开始)。 n属性count是行数。 4、窗体属性bindingcontext:可以得到 bingingmanagerbase的一个引用 5、例子: dim b as bindingmanagerbase b = me.bindingcontext(dataset11.人员表, ”) 19.4 datagrid和databindings n数据库模式: n人员表:借书证号,姓名,单位。 n图书表:图书编号,书名,单价。 n借阅表:借书证号,图书编号,借阅日期,归还 日期。 n功能: n人员表:新增、删除、编辑、查询人员表记录 n图书表:新增、删除、编辑、查询图书表记录 n借阅表:借书、还书。 n借阅历史查询显示:查询显示人员/图书借阅历史 记录。 19.5 编制“迷你图书馆” n人员表操作: n新增:输入借书证号,姓名,单位。 n查询:输入借书证号,查询姓名、单位。 n删除:输入借书证号,显示姓名、单位。提问是 否删除。 n编辑:在datagrid控件中或使用“数据绑定”修改 借书证号,显示姓名、单位。 19.5 编制“迷你图书馆” n图书表操作: n新增:输入图书编号,书名,单价。 n查询:输入图书编号,查询书名,单价。 n删除:输入图书编号,显示书名,单价。提问是 否删除。 n编辑:在datagrid控件中或使用“数据绑定”修改 图书编号,书名,单价。 19.5 编制“迷你图书馆” n借阅表操作: n借书:输入借书证号、图书编号、借阅日期。如 果借阅成功则提示。不允许重复借阅,并提示。 n还书:输入借书证号、图书编号、归还日期。如 果有借阅记录,将归还日期填入借阅记录。如果 无借阅记录,不填写归还日期并提示。 19.5 编制“迷你图书馆” n借阅历史查询显示: n默认显示:显示全部借阅历史明细,包括借书证 号、姓名、图书编号、书名、借阅日期、归还 日期。按借书证号和图书编号排序。 n查询1:输入借书证号,显示该证借阅历史明细 ,包括借书证号、姓名、图书编号、书名,借 阅日期、归还日期。按图书编号排序。 n查询1:输入图书编号,显示该书借阅历史明细 ,包括借书证号、姓名、图书编号、书名,借 阅日期、归还日期。按借书证号排序。 19.5 编制“迷你图书馆” n创建数据库: 1、用ms-access创建数据库“迷你图书馆.mdb” 2、创建表“人员表”,其中有借书证号(主键、字符 串)、姓名(字符串)、单位(字符串,允许为 空字符串)。在“人员表”中输入一些样板数据。 3、创建表“图书表”,其中有图书编号(主键、字符 串)、书名(字符串)、单价(货币,默认值为0 )。在“图书表”中输入一些样板数据。 4、创建表“借阅表”,其中有借书证号(字符串)、 图书编号(字符串)、借阅日期(日期/时间,短 格式) 、归还日期(日期/时间,短格式)。主键 由借书证号、图书编号两个字段组成。 5、注意:主键一定要指定,否则适配器配置会出错 。 19.5 编制“迷你图书馆” n主窗体画面: 1、建立新窗体form1 2、增加按钮:“人员表”、“图书表”、“借阅表”、“ 借书”、“还书”。 3、 “人员表”按钮的“click”事件处理过程: dim f2 as new form2 form2是人员表窗体 f2.showdialog() 4、 “图书表”、“借阅表”、“借书”、“还书”按钮的 “click”事件处理过程:类似。 5、说明:可以用菜单或别的方法实现主窗体。 19.5 编制“迷你图书馆” n人员表窗体: 1、建立新窗体form2 2、在form2上增加/配置四个“数据”控件: 注意选 择合适的数据库和查询sql语句。新建数据集使 用默认名字dataset11。将人员表加入到数据集 中成为dataset11.人员表 3、在form2上增加/配置datagrid控件:其 datasource属性设置成dataset11.人员表 4、编写form2窗体的load事件代码: oledbdataadapter1.fill(dataset11) 19.5 编制“迷你图书馆” 5、在form2上建立“数据库更新”按钮和“click”事 件处理代码 oledbdataadapter1.update(dataset11) 说明:以上各步均按19.2步骤。 6、建立“删除当前记录”按钮:在form2窗体上增加 按钮,其text属性是“添加新纪录”, 其“click”事 件处理过程代码如下: 19.5 编制“迷你图书馆” dim i as integer = 0 dim dr as datarow for each dr in dataset11.人员表.rows if dr.rowstate = dataset11.tables(“人员表“).rows.count then msgbox(“未发现。“) end if 19.5 编制“迷你图书馆” 8、使用“绑定”实现编辑功能: q在form2增加文本框控件textbox2,其text属性是空。 q在form2增加文本框控件textbox3,其text属性是空。 q在form2增加文本框控件textbox4,其text属性是空。 qform2窗体的load事件处理过程中增加代码: textbox2.databindings.add(new binding(“text”, _ dataset11.人员表, “借书证号”) textbox3.databindings.add(new binding(“text“, _ dataset11.人员表, “姓名“) textbox4.databindings.add(new binding(“text”, _ dataset11.人员表, “单位”) 19.5 编制“迷你图书馆” 9、滚动“绑定”数据: q在form2上增加四个按钮button5、button6、 button7、 button8,text属性分别为“首记录”、“ 上一条”、“下一条”、“末记录”。 q增加全局变量 dim b as bindingmanagerbase q在form2窗体的load事件处理过程中增加代码: b = me.bindingcontext(dataset11.人员表, ”) qform2“首记录”的“click”事件处理过程代码如下: b.position = 0 19.5 编制“迷你图书馆” qform2“末记录”的“click”事件处理过程代码如下: b.position = b.count - 1 qform2“上一条”的“click”事件处理过程代码如下: if b.position 0 then b.position -= 1 end if qform2“下一条”的“click”事件处理过程代码如下: if b.position = dataset11.tables(“借阅表“).rows.count then dr = dataset11.tables(“借阅表“).newrow dr.item(“借书证号“) = textbox1.text dr.item(“图书编号“) = textbox2.text dr.item(“借阅日期“) = textbox3.text dataset11.tables(“借阅表“).rows.add(dr) oledbdataadapter1.update(dataset11) msgbox(“借书成功“) else msgbox(“不能重复借阅。“) end if me.close() 19.5 编制“迷你图书馆” 8、“取消”按钮的“click”事件处理代码: me.close() 19.5 编制“迷你图书馆” n还书窗体: 1、建立新窗体form7 2、增加/配置四个“数据”控件: q不必重新建立数据库连接 q不必重新建立生成数据集。 3、编写窗体的load事件代码 4、增加三个textbox控件:textbox1、 textbox2、 textbox3,其text属性均设为空。 5、增加三个label控件:label1、 label2、 label3,其text属性分别设为“借书证号”、“图书 编号”、“归还日期”。并将它们分别放在textbox1 、 textbox2、 textbox3之前。 19.5 编制“迷你图书馆” 6、增加两个button控件:button1、 button2 ,其text属性分别设为“确定”、“取消” 。 7、“取消”按钮的“click”事件处理代码: me.close() 19.5 编制“迷你图书馆” 8、确定按钮的“click”事件处理代码: dim dr as datarow dim i as integer = 0 for each dr in dataset11.tables(“借阅表“).rows if dr.item(“借书证号“) = textbox1.text and _ dr.item(“图书编号“) = textbox2.text then dr.item(“归还日期“) = textbox3.text oledbdataadapter1.update(dataset11) msgbox(“还书成功“) exit for end if i += 1 next 未完,见下页。 19.5 编制“迷你图书馆” if i = dataset11.tables(“借阅表“).rows.count then msgbox(“无借书记录。“) end if me.close() 19.5 编制“迷你图书馆” n借阅历史查询显示窗体: 1、建立新窗体form8 2、增加/配置四个“数据”控件: 不必重新建立数据 库连接,要新建数据集dataset21。 3、sql语句是人员表、借阅表、图书表的内连接。 q使用查询生成器添加人员表、借阅表、图书表 q将人员表与借阅表在借书证号上连接,具体方法 是在人员表的借书证号按下鼠标,拖动到借阅表 的借书证号上。若定义了主键,连接自动产生。 q将借阅表与图书表在图书编号上连接,方法同上 。 q数据集dataset21中增加“借阅表” 19.5 编制“迷你图书馆” 4、增加/配置dataview控件: q选择工具箱|“数据”卡|双击dataview控件,增 加控件dataview1 q在dataview1的属性窗口,为table属性选择 dataset21.借阅表。 5、增加/配置datagrid控件:其datasource属性 设置成dataview1,其readonly属性设置成 true。 6、编写窗体form3的load事件代码 oledbdataadapter1.fill(dataview1.table) 19.5 编制“迷你图书馆” 7、增加一个文本框控件textbox1:其text属性设置 成空。 8、增加三个radiobutton控件:其text属性分别是“ 全部显示”、“按借书证号显示”、“按图书编号显示” 。radiobutton1的checked属性为true,其余的 checked属性为false。 9、编写三个radiobutton控件的click事件处理代码 :可以写在一起,也可以分开写。如果写在一起( 参考第8章),代码如下;如果分开写,可以将下列 代码写三遍,也可以分别写不同的代码(自做)。 注意代码的第一个if语句如果没有在textbox1中 输入,只有radiobutton1能被点中。 19.5 编制“迷你图书馆” if radiobutton1.checked = true or textbox1.text = _ “ then radiobutton1.checked = true textbox1.text = “ dataview1.rowfilter = “ elseif radiobutton2.checked = true then dataview1.rowfilter = “借书证号 = ” & _ textbox1.text & “ elseif radiobutton3.checked = true then dataview1.rowfilter = “图书编号 = ” & _ textbox1.text & “ end if 19.5 编制“迷你图书馆” n进一步改进: 1、捕捉异常:在合适的地方增加try/cat

温馨提示

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

最新文档

评论

0/150

提交评论