第10章数据库程序设计已修改.docx
- 文档编号:27578465
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:31
- 大小:395.25KB
第10章数据库程序设计已修改.docx
《第10章数据库程序设计已修改.docx》由会员分享,可在线阅读,更多相关《第10章数据库程序设计已修改.docx(31页珍藏版)》请在冰豆网上搜索。
第10章数据库程序设计已修改
第10章VisualBasic.NET数据库程序设计
学习要点:
●学习数据库基本原理及其应用。
●熟悉Access的集成开发环境。
●掌握VB.NET开发数据库应用程序步骤。
10.1创建个人通讯资料库
10.1.1例10-1创建个人通讯录库
任务描述:
在Access数据库中创建个人通讯录库中的表address_book.mdb,,表中包含姓名、出生日期、工作单位、家庭电话、移动电话、QQ、E-mail等字段,并在表中输入若干内容。
任务分析:
Access是存储管理数据的软件,将日常生活中的表格数据列(表头),规定相同属性,相同类型,相同长度,即为字段名。
每个行中填写的数据,即为数据库中的记录。
任务实现:
1.在Access中创建如表10-1中的结构。
表10-1address_book.mdb结构
通讯记录表
字段名
字段类型
字段大小
姓名
文本型
10
出生日期
日期型
8
工作单位
文本型
50
家庭电话
文本型
12
移动电话
文本型
11
QQ
文本型
11
文本型
50
创建方法如下:
(1)打开Access数据库软件;
(2)点击“新建”按钮,在出现的任务窗格图10-1中,点击新建中的“空数据库”。
图10-1任务窗格-新建文件
(3)在弹出的“文件新建数据库”对话框中,创建名为“address_book.mdb”的文件。
如图10-2所示。
图10-2建立的address_book.mdb数据库
(4)双击“使用设计器创建表”,弹出表设计器“表1:
表”,在其中建立表10-1中表结构。
如图10-3中姓名字段。
图10-3表设计器
(5)保存表名为“adress”。
保存时,软件提示“尚未定义主键”,在提示对话框中选择“是”按钮,建立一个主键。
即为表增加了一个编号字段,它在表中是唯一的。
图10-4“尚未定义主键”提示框
(6)此时,adress_book库,以及库中的表“adress”已建立成功,即adress的表结构建立完成。
(7)双击“address”表,在表中输入若干人的通讯记录。
10.2设计个人通讯资料库的软件整体结构与界面
10.2.1例10-2设计个人通讯资料库的软件整体结构与界面。
任务描述:
在个人通讯资料库中,建立主界面和录入\修改新的个人资料、查询个人资料、浏览通讯录三个子界面,并设计完成相应的功能。
任务分析:
本例中规划并建立整个小软件中的界面,对每个界面中所使用的控件,也进行了规划和设计,使它们能正确的完成输入/修改、查询、浏览各模块的功能。
任务实现:
1.根据软件所需要的功能,设计软件包含以下模块:
录入\修改信息模块、浏览信息模块和查询信息模块。
2.设计主界面,如图10-5,其中控件设计如表10-3所示。
图10-5个人通讯资料管理软件主界面
表10-2主界面控件表
控件名称
控件类型
属性
说明
bn_edit
button
text=”录入\修改新的个人资料”
bn_brow
button
text=”浏览通讯录”
bn_find
button
text=”查询个人资料”
bn_exit
button
text=”退出”
frm_main
form
text=”欢迎使用个人通讯资料库管理软件”
3.设计录入/修改信息模块界面,如图10-6,其中控件设计如表10-4所示。
。
图10-6个人通讯资料管理软件录入/修改界面
表10-3录入/修改界面控件表
控件名称
控件类型
属性
说明
tx_name
textbox
text=””
tx_birth
textbox
text=””
tx_work
textbox
text=””
tx_h_phone
textbox
text=””
tx_m_phone
textbox
text=””
tx_qq
textbox
text=””
tx_email
textbox
text=””
bn_first
button
Text=”第一条”
bn_last
button
Text=”上一条”
bn_next
button
Text=”下一条”
bn_end
button
Text=”最后一条”
bn_add
button
Text=”增加”
bn_modi
button
Text=”修改”
bn_del
button
Text=”删除”
bn_return
button
text=”放弃”
Frm_edit
form
Text=”录入/修改个人资料”
说明:
label控件未列入。
4.设计浏览信息模块(浏览通讯录)界面,如图10-7,其中控件设计如表10-4所示。
。
图10-7个人通讯资料管理软件浏览通讯录界面
表10-4浏览通讯录界面控件表
控件名称
控件类型
属性
说明
da_record
DataGridView
DataGridView控件在下一节中详细介绍
bn_return
button
text=”返回”
Frm_brow
form
Text=”浏览通讯录”
6.设计查询信息模块(查询个人资料)界面,如图10-8,其中控件设计如表10-6所示。
。
图10-8个人通讯资料管理软件查询个人资料界面
表105查询个人信息界面控件表
控件名称
控件类型
属性
说明
cb_type
Combox
Text=”按姓名查询”
tx_find
textbox
text=””
da_record
DataGrid
DataGrid控件在下一节中详细介绍
bn_return
Button
text=”返回”
Frm_sql
form
Text=”查询个人资料”
说明:
label控件未列入。
10.2.2例10-3浏览通讯录
任务描述:
使用ADO.NET2.0数据对象的向导模式,建立浏览通讯录模块。
建立DataGridView控件,显示address_book数据库中“address”表内容,从而实现浏览通讯录模块功能。
。
任务分析:
在VB.NET2008中提供了ADO.NET(ActiveXDataObjects)数据访问技术,此例中采用向导方式连接并浏览数据库。
任务实现:
1.按例10-2设计界面,新建项目brow_address,加入DataGridView、返回按钮控件。
2.在da_record控件的属性框中,点击datasource属性中的下拉箭头,在弹出的对话框中,点击“添加项目数据源”。
3.根据“数据源配置向导”,选择数据源类型为“数据库”;点击下一步,点击“新建连接”,选择数据连接为“MicrosoftAccess数据库文件”;点击“继续”,在弹出的“添加连接”对话框中,选择“数据库文件名”为“address_book.mdb”;点击“确定”,最后选择数据库对象为“表”,点击“完成”。
如图10-9——10-12所示。
4.此时,如图10-13所示,设计视图下出现,address_bookdataset,addressbindingsource和addresstableadapter三个控件,窗体中的da_record控件中出现address_book中的字段,说明数据库连接成功。
现在,编译执行项目,如图10-14所示,数据库中内容正确显示在DataGridView控件中。
图10-9“数据源配置向导”——选择数据源类型
图10-10“数据源配置向导”——选择数据连接图10-11添加数据库连接
图10-12“数据源配置向导”——选择数据库对象
图10-13DataGridView连接成功
图10-14项目执行效果
10.2.3ADO.NET2.0
1.ADO.NET简介
ADO.NET是一个类的集合,是一组用于和数据源进行交互的面向对象类库。
它包括了连接对象、命令对象、数据适配器对象和数据集对象等。
能以统一方式管理和访问各种不同类型的数据库,如:
MicrosoftSQLServer、Access,甚至是Excel和文本文件。
ADO.NET的数据存取API提供两种数据访问方式,分别用来识别并处理两种类型的数据源,即SQLServer7.0(及更高的版本)和可以通过OLEDB进行访问的其他数据源。
为此ADO.NET中包含了两个类库,System.Data.SQL库可以直接连接到SQLServer的数据,System.Data.ADO库可以用于其他通过OLEDB进行访问的数据源。
如Access数据。
本书主要讲解以OLEDB接口方式访问Access数据库的过程和方法。
2.ADO.NET中的名称空间
ADO.NET是围绕System.Data基本名称空间设计,其他名称空间都是从System.Data派生而来。
它们使得ADO.NET不仅访问DataBase中的数据,而且可以访问支持OLEDB的数据源。
当我们讨论ADO.NET时,实际讨论的是System.Data和System.Data.OleDb名称空间。
这两个空间的所有类几乎都可以支持所有类型的数据源中的数据。
这两个名称空间中包含有一些类,类中没有OleDb前缀的,派生自System.Data空间,有此前缀的派生自System.Data.OleDb空间。
本书讨论与OLEDB接口有关的类。
即OleDbconnection、OleDbDataAdapter、OleDbCommand、OleDbReader和DataSet。
在使用中,如果要引用OleDb前缀的类,必须导入System.Data.OleDb名称空间。
语法如下:
ImportsSystem.Data.OleDb
3.OLEDB接口
本例中向导建立数据库连接,实际上生成了一些代码,我们来看看。
以下是app.config中部分代码(注意加粗且倾斜代码)。
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|\address_book.mdb"//数据库连接 providerName="System.Data.OleDb"/>//数据库类型 以下是formload中代码(注意加粗且倾斜代码)。 PrivateSubfrm_brow_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load 'TODO: 这行代码将数据加载到表“Address_bookDataSet.address”中,读者可以根据需要移动或移除它。 Me.AddressTableAdapter.Fill(Me.Address_bookDataSet.address)//连接库中哪个表 EndSub 从上述代码,我们不难得出,本例中是采用OLEDB技术与数据库建立连接的。 建立数据库连接和访问,采用向导方式并不能随时在程序中有效的对数据库进行操作,所以我们应该学习编写代码方式访问数据库,即以SQL语言方式进行数据库连接、查询及修改等。 我们将在下面的章节中详细讲解。 10.3为个人资料库建立密码 10.3.1例10-4设置数据库密码 任务描述: 为数据库address_book.mdb设置密码,并使用代码编程方式在DataGridView控件中显示数据库中内容。 任务分析: 数据库中包含着大量的数据信息,有许多的数据是使用者并不希望公开的,如本例中的个人资料,是个人隐私。 所以在使用数据库时,我们会为它设置密码,只有拥有密码的人才能查看数据库中的数据。 任务实现: 1.要设置数据库密码,必须以独占方式打开数据库。 图10-15以独占方式打开数据库address_book.mdb 2.点击“工具”菜单中子菜单“安全”中的“设置数据库密码”,为数据库设置密码。 图10-16选择“设置数据库”菜单 3.在“设置数据库密码”对话框中,设置密码为“123456”,点击“确定”按钮。 图10-17为address_book.mdb数据库设置密码 4.按例10-2设计界面,新建项目brow_address_1,加入DataGridView控件和返回控件。 5.例10-3中利用向导方式建立了与数据库的连接,在此例中,用代码方式访问数据库。 在form_load事件中添加代码如下: (观察与例10-3中系统生成代码相似之处) DimstrConnAsString ‘连接数据库OleDbConnection strConn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=address_book.mdb;jetoledb: databasepassword=123456"//思考如果没有密码,编写数据库连接的代码应该如何书写 DimobjConnAsNewOleDb.OleDbConnection(strConn) objConn.Open() ‘打开表OleDbDataAdapter DimstrSql="Select*Fromaddress" DimobjAdapAsNewOleDb.OleDbDataAdapter(strSql,objConn) objConn.Close() ‘关联到数据集DataSet DimobjDSetAsNewDataSet objAdap.Fill(objDSet,"address") ‘关联到控件 DataGridView1.DataSource=objDSet.Tables("address") 6.编译执行项目,数据库中内容正确显示在DataGridView1控件中。 10.4个人资料库的数据录入与修改 10.4.1例10-5录入/修改数据库记录 任务描述: 设计录入/修改程序,为数据库address_book.mdb中表address增加、修改、删除个人资料数据记录。 任务分析: 为了方便的对数据库进行操作,我们设计如图10-6的程序界面,并为其中的文本框控件和按钮控件绑定到address_book库中的表address中。 任务实现: 1.按图10-6设计程序界面,如下图10-18所示。 图10-18录入/修改个人资料界面 2.为了在所有按钮中使用数据库连接,定义下列全局变量。 DimmybindAsBindingManagerBase DimstrConnAsString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=address_book.mdb;jetoledb: databasepassword=123456" DimobjConnAsNewOleDb.OleDbConnection(strConn) DimobjAdapAsNewOleDb.OleDbDataAdapter() DimobjDSetAsNewDataSet 3.为文本框绑定数据库中字段,将下面代码加入form_load中,代码如下: objConn.Open() DimstrSql="Select*Fromaddress" objAdap.SelectCommand=NewOleDb.OleDbCommand(strSql,objConn) objConn.Close() objAdap.Fill(objDSet,"address") tx_name.DataBindings.Add(NewBinding("text",objDSet,"address.姓名")) tx_work.DataBindings.Add(NewBinding("text",objDSet,"address.工作单位")) tx_birth.DataBindings.Add(NewBinding("text",objDSet,"address.出生日期")) tx_h_phone.DataBindings.Add(NewBinding("text",objDSet,"address.家庭电话")) tx_m_phone.DataBindings.Add(NewBinding("text",objDSet,"address.移动电话")) tx_qq.DataBindings.Add(NewBinding("text",objDSet,"address.QQ")) tx_email.DataBindings.Add(NewBinding("text",objDSet,"address.E-mail")) 此时,编译执行,可显示数据库中address表中的第一条记录。 4.为了在程序代码中均可用绑定,在form_load前增加声明。 DimmybindAsBindingManagerBase 并在form_load代码最后增加以下代码。 mybind=Me.BindingContext(objDSet,"address") 5.为按钮编写事件代码。 (暂不考虑异常) (1)bn_first_click事件 mybind.Position=0 (2)bn_last_click事件 mybind.Position-=1 (3)bn_next_click事件 mybind.Position+=1 (4)bn_end_click事件 mybind.Position=mybind.count-1 (5)bn_add_click事件 Ifbn_add.Text="增加"Then tx_name.Text="": tx_birth.Text="": tx_h_phone.Text="" tx_m_phone.Text="": tx_email.Text="": tx_work.Text="": tx_qq.Text="" bn_add.Text="确认" Else objConn.Open() DimstrinAsString="insertintoaddress(姓名,出生日期,工作单位,家庭电话,移动电话,qq,email)values('"&tx_name.Text&"','"&tx_birth.Text&"','"&tx_work.Text&"','"&tx_h_phone.Text&"','"&tx_m_phone.Text&"','"&tx_qq.Text&"','"&tx_email.Text&"')" ‘注释‘”&变量名&”’是字符串中使用变量的值的格式 DimobjCmdAsNewOleDb.OleDbCommand(strin,objConn) objCmd.ExecuteNonQuery() objConn.Close() Dimstrsql="select*fromaddress" objAdap.SelectCommand=NewOleDb.OleDbCommand(strsql,objConn) objDSet.Clear() objAdap.Fill(objDSet,"address") bn_add.Text="增加" mybind.Position=mybind.Count-1 MsgBox("更新成功") EndIf (6)bn_modi_click事件 objConn.Open() DimstrmodAsString="updateaddressset姓名='"&tx_name.Text&"',出生日期='"&tx_birth.Text&"',工作单位='"&tx_work.Text&"',家庭电话='"&tx_h_phone.Text&"',移动电话='"&tx_m_phone.Text&"',qq='"&tx_qq.Text&"',email='"&tx_email.Text&"'where姓名='"&tx_name.Text&"'" DimobjCmdAsNewOleDb.OleDbCommand(strmod,objConn) objCmd.ExecuteNonQuery() objConn.Close() MsgBox("更新成功! ") (7)bn_del_click事件 objConn.Open() DimstrDelAsString="DelectFromaddressWhere姓名="&tx_name.Text DimobjCmdAsNewOleDb.OleDbCommand(strDel,objConn) objCmd.ExecuteNonQuery() objConn.Close() objDSet.Tables("address").Rows(mybind.Position).Delete() objDSet.Tables("address").AcceptChanges() 6.由上述程序,可以得出SQL访问数据库的方法。 (1)创建数据连接 DimstrConnAsString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=数据库名;jetoledb: databasepassword=密码" DimobjConnAsNewOleDb.OleDbConnection(strConn) (2)定义数据适配器对象 DimobjAdapAsNewOleDb.OleDbDataAdapter() (3)定义数据集对象 DimobjDSetAsNewDataSet (4)打开连接 objConn.Open() (5)定义并执行SQL命令 DimstrSql="Select*Fromaddress"(SQL命令,如: selectdelete等) objAdap.Selec
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 数据库 程序设计 修改