文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程数据库VB.NET的数据库基础编程(1)
精品推荐
特别推荐
·SQL数据库完全使用手册
·进阶:精妙SQL语句介绍
·sql删除记录
·学习SQL语句之SQL语句大全
·数据备份失败的五个原因及解决办法
·解决SQL Server常见的七个经典问题
·SQL存储过程的概念,创建,调用,管理,删除,优点
·带你轻松接触13个数据库术语
·如何恢复系统数据库如何恢复系统数据库?
·通过实例讲解由浅入深学会存储过程
·学会三个范式快速成为数据库设计的高手
·SQL数据库应聘人员面试时经常被问的问题
·问答:查询分析器不能单步调试的的原因
·数据库基础知识:SQL中的IIF语句详解
·WindowsXP+IIS+PHP5+MySQL5+Zend+GD库+phpMyAdmin+PHPWind 5.3 安装教程
·你知道吗?优化数据库前的十大问题
·自动备份注意事项让你远离误删数据噩梦
·关于MSSQL数据库日志满的快速解决办法
·SQL安全设置攻略
·SQL注入的不常见方法
热点TOP10
·SQL存储过程的概念,创建,调用,管理,删除,优点
·SQL数据库完全使用手册
·用独立的DLL来存储图片(资源文件)
·编程实例 WebGroupBox(Aspx控件)
·数据结构(C#)_排序算法(冒泡排序)
·详细介绍Oracle数据库的启动和关闭
·在DataTable中查询应该注意的问题
·从数据库来管理个人网站安全
·sqlldr加载数据到不同表的问题
·DB中查询Table占用空间的大小
·使用重定向恢复DB2数据库
·浅谈DB2数据库故障处理及最佳实践
·T-SQL语句实现数据库备份与还原
·数据库性能优化JOIN方法说明
·Apache+php+mysql安装与配置详解
·如何在DB2里面更新执行计划
·关于IBM DB2 数据库的使用小技巧小结
·轻松掌握清空数据库的好方法
·使用 “--”作为数据库注释起始标记
·数据备份失败的五个原因及解决办法

VB.NET的数据库基础编程(1)

日期:2007年2月21日 作者:清风网络学院 查看:[大字体 中字体 小字体]


面向数据库编程始终是程序设计的一个难点和重点,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 文本 邮政编码


远程数据库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对象的具体例子。

     
        '创建一个数据连接
        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" )     


对于SQL Server数据库,创建BindingManagerBase对象和Access 2000大致相同,唯一不同的就在于创建数据连接的时候,下面是以SQL Server 2000为操作数据库,数据库服务器名称为"Server1",数据库名称为"Data1",登陆的ID为"sa",口令为空,在数据库也只存放了一张"person"数据表,创建BindingManagerBase对象的程序代码:

     
     '创建一个数据连接
        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" )     


在得到BindingManagerBase对象后,配合使用"position"属性和"Count"属性,就可以实现对数据集的浏览了,下面是对数据集进行"上一条"、"下一条"、"尾记录"、"首记录"。

     
    '按钮"尾记录"对象事件程序 
    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   


四.VB.NET来删除数据记录:

在做程序的时候,我们可能有这样的迷惑就是,我们操作的数据集是返回的DataSet对象,如果此时的DataSet对象十分庞大,或者连接到此数据库服务器的客户非常多,这样就会耗费服务器的很多资源,久而久之服务器总有一天可能会崩溃。其实这种担心是没有必要的,因为我们操作的DataSet对象其实产生的位置并不在服务器端,而是客户端,这样上面的几种顾虑就显得没有必要了。但在对数据库进行删除、修改等操作,我们此时操作的对象是服务器端的数据库,并没有修改到本地的DataSet对象,所以当进行删除、修改操作的时候,为了数据一致,在对服务器端的数据库进行删除、修改后,依然要对本地的DataSet对象进行相关操作。根据上面的这些知识,就可以分别得到针对Access 2000和Sql Server 2000数据库进行删除操作的程序代码:

< I > .删除Access 2000数据库中的记录:

     
    Private Sub button4_Click (ByVal sender As Object , _
      ByVal e As System.EventArgs) Handles button4.Click
     '连接到一个数据库
            Dim strCon As String = " Provider = Microsoft.Jet.OLEDB.4.0 ; 
   Data Source = db.mdb "
            Dim myConn As OleDbConnection = New OleDbConnection ( strCon )
            myConn.Open ( ) 
            Dim strDele As String = "DELETE FROM person WHERE id= " + t_id.Text
            Dim myCommand As OleDbCommand = New OleDbCommand ( strDele , myConn )
            '从数据库中删除指定记录
            myCommand.ExecuteNonQuery ( ) 
            '从DataSet中删除指定记录
            myDataSet.Tables ( "person" ).Rows ( myBind.Position ).Delete ( ) 
            myDataSet.Tables ( "person" ).AcceptChanges ( ) 
            myConn.Close ( ) 
End Sub   


< II > .删除Sql Server 2000数据库中的记录:

     
    Private Sub button4_Click (ByVal sender As Object , _
      ByVal e As System.EventArgs) Handles button4.Click
     '连接到一个数据库
            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 ( strCon )
            myConn.Open ( ) 
            Dim strDele As String = "DELETE FROM person WHERE id= " + t_id.Text
            Dim myCommand As OleDbCommand = New OleDbCommand ( strDele , myConn )
            '从数据库中删除指定记录
            myCommand.ExecuteNonQuery ( ) 
            '从DataSet中删除指定记录
            myDataSet.Tables ( "person" ).Rows ( myBind.Position ).Delete ( ) 
            myDataSet.Tables ( "person" ).AcceptChanges ( ) 
            myConn.Close ( ) 
End Sub   


五.VB.NET来修改数据记录:

掌握了SQL语句,并且掌握了上面删除数据记录的实现过程过以后,用VB.NET来修改数据记录就显得并不十分困难了。下面就是以Access 2000为操作数据库实现记录修改的代码,如下:

     
    Private Sub button3_Click (ByVal sender As Object , _
      ByVal e As System.EventArgs) Handles button3.Click
        Dim i As Integer = myBind.Position
        '连接到一个数据库
        Dim strCon As String = " Provider = Microsoft.Jet.OLEDB.4.0 ; 
  Data Source = db.mdb "
        Dim myConn As OleDbConnection = New OleDbConnection ( strCon )
        myConn.Open ( ) 
        myDataSet.Tables ( "person" ).Rows ( myBind.Position ).BeginEdit ( ) 
        '从数据库中修改指定记录
        Dim strUpdt As String = " UPDATE person SET xm = '" _
         + t_xm.Text + "'  , xb = '" _
         + t_xb.Text + "'  , nl = " _
         + t_nl.Text + "  , zip = " _
         + t_books.Text + " WHERE id = " + t_id.Text
        Dim myCommand As OleDbCommand = New OleDbCommand ( strUpdt , myConn )
        myCommand.ExecuteNonQuery ( ) 
        myDataSet.Tables ( "person" ).Rows ( myBind.Position ).EndEdit ( ) 
        myDataSet.Tables ( "person" ).AcceptChanges ( ) 
        myConn.Close ( ) 
        myBind.Position = i
    End Sub   


在介绍完上面这二个典型的数据操作后,我们不难发现,其实对数据库进行编程,选取什么样的数据库类型对于程序开发并不是十分主要的,因为在用VB.NET进行数据库开发的时候,对不同数据库,其开发代码的主要区别只在于数据链接的不同,所以在此就不单独介绍用VB.NET对Sql Server 2000进行修改记录操作的代码了。我想这应该不是很难吧。

六.VB.NET来插入数据记录:

往数据库中插入记录和修改记录和删除记录基本上差不多,主要也是利用SQL语句,下面是以Access 2000为操作数据库,进行插入记录的代码:

     
    Private Sub button2_Click (ByVal sender As Object , _
      ByVal e As System.EventArgs) Handles button2.Click
        '判断所有字段是否添完,添完则执行,反之弹出提示 
        If  ( t_id.Text <> "" And t_xm.Text <> "" 
  And t_xb.Text <> "" And t_nl.Text <> "" 
  And t_books.Text <> "" ) Then
            Dim myConn1 As String = " Provider = Microsoft.Jet.OLEDB.4.0 ; 
   Data Source = db.mdb"
            Dim myConn As OleDbConnection = New OleDbConnection ( myConn1 )
            myConn.Open ( ) 
            Dim strInsert As String = " INSERT INTO person  ( id  , xm  ,
    xb  , nl  , zip ) VALUES  ( " & _
            t_id.Text + " , '" & _
            t_xm.Text + "' , '" & _
            t_xb.Text + "' , " & _
            t_nl.Text + " , " & _
            t_books.Text + ")"
            Dim inst As OleDbCommand = New OleDbCommand ( strInsert , myConn )
            inst.ExecuteNonQuery ( ) 
            myConn.Close ( ) 
            myDataSet.Tables ( "person" ).Rows ( myBind.Position ).BeginEdit ( ) 
            myDataSet.Tables ( "person" ).Rows ( myBind.Position ).EndEdit ( ) 
            myDataSet.Tables ( "person" ).AcceptChanges ( ) 
        Else
            MessageBox.Show ( "必须填满所有字段值!" , "错误!" )
        End If
End Sub   


同样对Sql Server 2000数据库进行插入记录操作和Access 2000数据库插入记录操作的差异也只在于不同的数据链接,具体的代码可以参考"删除数据记录"中的代码,在这里就不提供了。

(出处:清风网络学院






上一篇:用VB.NET来做个性化浏览器

下一篇:VB.NET的数据库基础编程(2)

VB.NET的数据库基础编程(1) 相关文章:
·socket编程原理
·用Photoshop画漫画教程之基础入门
·破解基础知识汇编
·注册表基础—注册表使用全攻略之一
·PB应用ODBC访问不同数据库
·PB应用的数据库联接的安全防范
·JavaScript Dom编程:介绍学习书籍
·用林登脚本语言实现第二人生脚本编程
·Oracle导出数据库结构到PowerDesigner
·网络协议基础知识 SMTP协议和UDP协议
VB.NET的数据库基础编程(1) 相关软件:
·SQL Server 2000 基础系列课程视频
·Delphi7编程技巧与实例精解
·SQL/MYSQL/数据库教程专栏
·C++编程思想
·《3D Max 动画基础教程》
·vc-mfc编程实例
·鸟哥的linux私房菜:基础学习篇
·2005XDF基础班任政治经济学flash版(16)
·电子商务互联网数据库试卷
·经济师基础模拟题一

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot