网站首页 工具软件 操作系统 办公软件 网页制作 PHP教程 script脚本专栏 photoshop教程 其他精品教程
我发布的文章 - 教程搜索 - 交流论坛 - 帮助中心 - 网站首页 网络工具 - 常用工具 - 媒体工具 - 系统工具 - 实用工具 NT/2003 - Win Xp - Win2000 - DOS/Win9x - IE/注册表 - Linux - 苹 果 Office - Word - Excel - PowerPoint - 输入法 - 邮件处理 Flash - Dreamweaver - Fireworks - FrontPage - HTMLCSS 基础文章 - PHP函数 - PHP技巧 - 数据库相关 - 高级应用 - PHP安装 - 转载精华 - 常见问题 综 合 类 - 状 态 栏 - 游 戏 类 - 页面背景 - 页面特效 - 页面导航 - 文本操作 - 文本特效 - 图形特效 - 鼠标特效 - 时间日期 - 密 码 类 文字特效 - 按钮与图标 - 色彩运用 - 滤镜魔法 - 综合实例 XML教程 - DELPHI基础教程 - VB教程
首页 -> 其他精品教程 -> VB教程

TOP

:用继承加速MIS开发 (1)
文章内容
相关信息
用户评论
文章内容


本文介绍微软最新技术Visual Basic.NET在数据库开发方面的应用。结合数据库系统开发的知识,介绍了物理表操作的方法,利用Visual Basic.NET的面向对象的特征,利用类的继承知识,简化了数据库系统开发过程。

Visual Basic.NET是Visual Basic的一个后继版本,但二者之间的差别是十分巨大。虽然以前版本的Visual Basic号称自己是一种OOP(面向对象)编程语言,但却并不是一个地地道道的OOP编程语言,最多只是半个面向对象的编程语言。实际上他是一种面向事件的编程语言。正是由于这种原因,以前的Visual Basic在功能上相对较弱。但自从微软推出Visual Basic.NET以后,这种情况就大为改变,Visual Basic.NET已经是一种完全的面向对象的编程语言,支持面向对象的基本特征:继承、多态和重载。这使得以前在VISUAL BASIC中很难或根本实现不了的问题,在VISUAL BASIC.NET中可以顺利、简便的实现。

本文中就是介绍面向对象的Visual Basic.NET语言的继承特征,如何在数据库信息管理系统软件中应用。

自定义数据操作类


定义一个数据访问的基类,并编写有关数据库操作的必要方法。

定义一个数据访问类,类名为CData。定义连接Oracle数据库的方法ConnOracle,获取数据集的方法GetDataSet,获取物理表的方法GetDataTable,向物理表中插入一行数据的方法Insert,向物理表中删除数据的方法Delete,向物理表中更新数据的方法Update。其实现方法不是本文的重点,在此仅给出代码,不作详细分析。代码如下:

Public Class CDataBase
    Dim OleCnnDB As New OleDbConnection()
 连接Oracle数据库,ServerName:服务器名,UserId:用户名,UserPwd:用户密码
Public Function ConnOracle(ByVal ServerName As String, ByVal UserId As String,
ByVal UserPwd As String) As OleDbConnection
            Dim OleCnnDB As New OleDbConnection()
            With OleCnnDB
                  .ConnectionString = "Provider=MSDAORA.1;Password= "
		  & UserPwd & " ;User ID= " & 
UserId & " ;Data Source= " & 
ServerName & " "
                Try
                    .Open()
                Catch er As Exception
                    MsgBox(er.ToString)
                End Try
            End With
            mOleCnnDB = OleCnnDB
      Return OleCnnDB
End Function 
 获取数据集。TableName:表名,strWhere:条件
        Public Overloads Function GetDataSet(ByVal TableName As String,
	ByVal strWhere As String) As DataSet
            Dim strSql As String
            Dim myDataSet As New DataSet()
            Dim myOleDataAdapter As New OleDbDataAdapter()
            myOleDataAdapter.TableMappings.Add(TableName, TableName)
            strSql = "SELECT * FROM " & TableName & "
 where " & strWhere
            myOleDataAdapter.SelectCommand = New OleDbCommand(strSql, mOleCnnDB)
            Try
                myOleDataAdapter.Fill(myDataSet)
            Catch er As Exception
                MsgBox(er.ToString)
            End Try
            Return myDataSet
        End Function
 获取物理表。TableName:表名
        Public Overloads Function GetDataTable(ByVal TableName As String)
	As DataTable
            Dim myDataSet As New DataSet()
            myDataSet = GetDataSet(TableName)
            Return myDataSet.Tables(0)
        End Function
         获取物理表。TableName:表名,strWhere:条件
        Public Overloads Function GetDataTable(ByVal TableName As String,
	ByVal strWhere As String) As DataTable
            Dim myDataSet As New DataSet()
            myDataSet = GetDataSet(TableName, strWhere)
            Return myDataSet.Tables(0)
        End Function
    向物理表中插入一行数据。TableName:表名,Value:行数据,BeginColumnIndex:开始列
        Public Overloads Function Insert(ByVal TableName As String, 
	ByVal Value As Object, Optional ByVal BeginColumnIndex As Int16 = 0)
	As Boolean
            Dim myDataAdapter As New OleDbDataAdapter()
            Dim strSql As String
            Dim myDataSet As New DataSet()
            Dim dRow As DataRow
            Dim i, len As Int16
            strSql = "SELECT * FROM " & TableName
            myDataAdapter.SelectCommand = New OleDbCommand(strSql, mOleCnnDB)
            Dim custCB As OleDbCommandBuilder = New 
OleDbCommandBuilder(myDataAdapter)
            myDataSet.Tables.Add(TableName)
            myDataAdapter.Fill(myDataSet, TableName)
            dRow = myDataSet.Tables(TableName).NewRow
            len = Value.Length
            For i = BeginColumnIndex To len - 1
                If Not (IsDBNull(Value(i)) Or IsNothing(Value(i))) Then
                    dRow.Item(i) = Value(i)
                End If
            Next
            myDataSet.Tables(TableName).Rows.Add(dRow)
            Try
                myDataAdapter.Update(myDataSet, TableName)
            Catch er As Exception
                MsgBox(er.ToString)
                Return False
            End Try
            myDataSet.Tables.Remove(TableName)
            Return True
        End Function
           更新物理表的一个字段的值。strSql:查询语句,FieldName_Value:字段及与对应的值
        Public Overloads Sub Update(ByVal strSql As String, 
	ByVal FieldName_Value As String)
            Dim myDataAdapter As New OleDbDataAdapter()
            Dim myDataSet As New DataSet()
            Dim dRow As DataRow
            Dim TableName, FieldName As String
            Dim Value As Object
            Dim a() As String
            a = strSql.Split(" ")
            TableName = a(3)
            a = FieldName_Value.Split("=")
            FieldName = a(0).Trim
            Value = a(1)
            myDataAdapter.SelectCommand = New OleDbCommand(strSql, mOleCnnDB)
            Dim custCB As OleDbCommandBuilder = New 
OleDbCommandBuilder(myDataAdapter)
            myDataSet.Tables.Add(TableName)
            myDataAdapter.Fill(myDataSet, TableName)
            dRow = myDataSet.Tables(TableName).Rows(0)
            If Value <> Nothing Then
                dRow.Item(FieldName) = Value
            End If
            Try
                myDataAdapter.Update(myDataSet, TableName)
                myDataSet.Tables.Remove(TableName)
            Catch er As Exception
                MsgBox(er.ToString)
            End Try
        End Sub
               删除物理表的数据。TableName:表名,strWhere:条件 
        Public Overloads Sub Delete(ByVal TableName As String, 
	ByVal strWhere As String)
            Dim myReader As OleDbDataReader
            Dim myCommand As New OleDbCommand()
            Dim strSql As String
            strSql = "delete  FROM " & TableName &
 " where " & strWhere
            myCommand.Connection = mOleCnnDB
            myCommand.CommandText = strSql
            Try
                myReader = myCommand.ExecuteReader()
                myReader.Close()
            Catch er As Exception
                MsgBox(er.ToString)
            End Try
        End Sub
End Class


定义一操作数据库中物理表的类CData,此类继承CDataBase,即:

Public Class CData:Inherits CDataBase


此类应该由供用户提供所操作的物理表的表名,指定了表名就可取得该表的所有性质。该表主要完成插入、删除、更新功能。定义其属性、方法如下:

申明类CData的变量:

 所要操作的表名
Private Shared UpdateTableName As String 
 所要操作的表对象   
 Public Shared UpdateDataTable As New DataTable()
 对应表的一行数据197
Public Shared ObjFields() As Object  
 表的字段数
Public Shared FieldCount As Int16
 主关键字。我们假设每个物理表都有一个主关键字字段fSystemID
          Public Shared SystemID As String




相关信息
:用继承加速MIS开发 (1)
发布者:mmcbbs
浏览量:109
发布日期:2005-04-10 10:27:34
所属专题:
用户评论
称  呼:
内  容:

广告位

广告招租,欢迎抢订

热门信息

·什么是ODBC
·初识WTL(上)
·理解ActiveX控件的一些背景..
·VB.NET 的新特点:变..
·探讨VB.Net中的数据绑定
·用VB.NET打造NameSpace
·VB.NET中的面向对象编程特征
·用VB和MTS开发多层数据库应..

推荐信息