-
vb.net教程之VB.NET的数据库基础编程
VB.NET的数据库基础编程(1)
面向数据库编程始终是程序设计的一个难点和重点,VB.NET和C#一样自身是不具备对数据库进行操作的功能,他们对数据库的处理是通过.Net FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的。在上一篇文章《探讨VB.Net中的数据绑定》中,我们已经探讨了数据绑定技术,这对于我们下面进行数据库编程是非常重要的。由于数据库编程中所包含的内容十分丰富,这是一篇文章所难以包容的。本文就来探讨一下用VB.NET进行数据库的基础编程,即:用VB.NET如何实现对数据的浏览,如何添加、插入记录,如何删除记录和如何更改记录。
一.程序设计和运行的环境设置:
(1).视窗2000服务器版
(2).Microsoft Data Acess Component 2.6 以上版本 ( MDAC 2.6 )
(3)..Net FrameWork SDK Beta 2
二.数据库的数据字典:
为了更全面的介绍,在数据库的选取方面,选取了二种典型的数据库,其一是本地数据库,也就是本文主要介绍的的数据库Access 2000;另外一个是远程数据库SQL Server 2000。其中Access 2000的数据库名称是"db.mdb",在此数据库中只存放了一张数据表"person",此数据表结构如下:
远程数据库Sql Server 2000的数据库服务器名称为"Server1",数据库名称为"Data1",登陆的ID为"sa",口令为空,在数据库也只存放了一张"person"数据表,数据结构大致如上。
三.VB.NET如何实现对数据记录的浏览:
在完成对窗体中的WinForm组件进行绑定过以后,实现对数据记录的浏览操作的关键就是要找到如何定位数据记录指针的方法。而要实现这种处理就需要用到.Net FrameWork SDK中的名称空间System.Windows.Froms中的BindingManagerBase类了,BindingManagerBase是一个抽象的类,他主要管理对于绑定同一数据表所有绑定对象。BindingManagerBase类中定义了二个属性"position"和"Count",第一个属性是定义当前数据指针,而第二个属性主要是得到当前数据集有多少记录数目。在已经进行完数据绑定后,通过这二个属性的配合使用,实现对数据记录的浏览。那么如何创建一个属于自己的BindingManagerBase对象,这就要使用到另外一个类--BindingContext。其实对于那些属于从Control类中继承对象的BindingManagerBase都是由BindingContext来创建的,下面以Access 2000为操作数据库,创建的一个名称为"myBind"的BindingManagerBase对象的具体例子。
对于SQL Server数据库,创建BindingManagerBase对象和Access 2000大致相同,唯一不同的就在于创建数据连接的时候,下面是以SQL Server 2000为操作数据库,数据库服务器名称为"Server1",数据库名称为"Data1",登陆的ID为"sa",口令为空,在数据库也只存放了一张"person"数据表,创建BindingManagerBase对象的程序代码:
在得到BindingManagerBase对象后,配合使用"position"属性和"Count"属性,就可以实现对数据集的浏览了,下面是对数据集进行"上一条"、"下一条"、"尾记录"、"首记录"。
面向数据库编程始终是程序设计的一个难点和重点,VB.NET和C#一样自身是不具备对数据库进行操作的功能,他们对数据库的处理是通过.Net FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的。在上一篇文章《探讨VB.Net中的数据绑定》中,我们已经探讨了数据绑定技术,这对于我们下面进行数据库编程是非常重要的。由于数据库编程中所包含的内容十分丰富,这是一篇文章所难以包容的。本文就来探讨一下用VB.NET进行数据库的基础编程,即:用VB.NET如何实现对数据的浏览,如何添加、插入记录,如何删除记录和如何更改记录。
一.程序设计和运行的环境设置:
(1).视窗2000服务器版
(2).Microsoft Data Acess Component 2.6 以上版本 ( MDAC 2.6 )
(3)..Net FrameWork SDK Beta 2
二.数据库的数据字典:
为了更全面的介绍,在数据库的选取方面,选取了二种典型的数据库,其一是本地数据库,也就是本文主要介绍的的数据库Access 2000;另外一个是远程数据库SQL Server 2000。其中Access 2000的数据库名称是"db.mdb",在此数据库中只存放了一张数据表"person",此数据表结构如下:
字段名称 | 字段类型 | 字段意思 |
id | 数字 | 序号 |
xm | 文本 | 姓名 |
xb | 文本 | 性别 |
nl | 文本 | 年龄 |
zip | 文本 | 邮政编码 |
三.VB.NET如何实现对数据记录的浏览:
在完成对窗体中的WinForm组件进行绑定过以后,实现对数据记录的浏览操作的关键就是要找到如何定位数据记录指针的方法。而要实现这种处理就需要用到.Net FrameWork SDK中的名称空间System.Windows.Froms中的BindingManagerBase类了,BindingManagerBase是一个抽象的类,他主要管理对于绑定同一数据表所有绑定对象。BindingManagerBase类中定义了二个属性"position"和"Count",第一个属性是定义当前数据指针,而第二个属性主要是得到当前数据集有多少记录数目。在已经进行完数据绑定后,通过这二个属性的配合使用,实现对数据记录的浏览。那么如何创建一个属于自己的BindingManagerBase对象,这就要使用到另外一个类--BindingContext。其实对于那些属于从Control类中继承对象的BindingManagerBase都是由BindingContext来创建的,下面以Access 2000为操作数据库,创建的一个名称为"myBind"的BindingManagerBase对象的具体例子。
'创建一个数据连接 Dim strCon As String = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb " Dim myConn As OleDbConnection = New OleDbConnection ( ) myConn.ConnectionString = strCon Dim strCom As String = " SELECT * FROM person " '创建一个 DataSet myDataSet = New DataSet ( ) myConn.Open ( ) '通过OleDbDataAdapter对象得到一个数据集 Dim myCommand As OleDbDataAdapter = New OleDbDataAdapter ( strCom , myConn ) '把Dataset绑定books数据表 myCommand.Fill ( myDataSet , "person" ) '关闭此数据连接 myConn.Close ( ) '创建BindingManagerBase对象 myBind = Me.BindingContext ( myDataSet , "person" ) |
'创建一个数据连接 Dim strCon As String = " Provider = SQLOLEDB.1 ; Persist Security Info = False ; User ID = sa ; Initial Catalog = data1 ; Data Source = server1 " Dim myConn As OleDbConnection = New OleDbConnection ( ) myConn.ConnectionString = strCon Dim strCom As String = " SELECT * FROM person " '创建一个 DataSet myDataSet = New DataSet ( ) myConn.Open ( ) '通过OleDbDataAdapter对象得到一个数据集 Dim myCommand As OleDbDataAdapter = New OleDbDataAdapter ( strCom , myConn ) '把Dataset绑定books数据表 myCommand.Fill ( myDataSet , "person" ) '关闭此数据连接 myConn.Close ( ) '创建BindingManagerBase对象 myBind = Me.BindingContext ( myDataSet , "person" ) |
'按钮"尾记录"对象事件程序 Private Sub lastrec_Click ( ByVal sender As Object , _ ByVal e As System.EventArgs ) Handles lastrec.Click myBind.Position = myBind.Count - 1 End Sub '按钮"下一条"对象事件程序 Private Sub nextrec_Click ( ByVal sender As Object , _ ByVal e As System.EventArgs ) Handles nextrec.Click If myBind.Position = myBind.Count - 1 Then MessageBox.Show ( "已经到了最后一条记录!" , "信息提示!" , MessageBoxButtons.OK , MessageBoxIcon.Information ) Else myBind.Position = myBind.Position + 1 End If End Sub '按钮"上一条"对象事件程序 Private Sub previousrec_Click ( ByVal sender As Object , _ ByVal e As System.EventArgs ) Handles previousrec.Click If ( myBind.Position = 0 ) Then MessageBox.Show ( "已经到了第一条记录!" , "信息提示!" , MessageBoxButtons.OK , MessageBoxIcon.Information ) Else myBind.Position = myBind.Position - 1 End If End Sub '按钮"首记录"对象事件程序 Private Sub firstrec_Click ( ByVal sender As Object , _ ByVal e As System.EventArgs ) Handles firstrec.Click myBind.Position = 0 End Sub |
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比