vb.net连接oracle数据库

Imports Oracle.DataAccess.Client
Imports System.Runtime.CompilerServices
Imports System.Threading
Imports Microsoft.VisualBasic.CompilerServices

Public Class OracleDB
    Public Shared OraConnection As String

    Public Shared Function CallProcedure(ByVal strProcedureName As String, ByVal strParameters As IList) As Boolean
        Dim connection As OracleConnection = New OracleConnection()
        Dim adapter As OracleDataAdapter = New OracleDataAdapter()
        Dim command As OracleCommand = New OracleCommand()
        connection.ConnectionString = OraConnection
        connection.Open()
        command = New OracleCommand(strProcedureName, connection)
        command.CommandType = CommandType.StoredProcedure
        Dim num2 As Integer = strParameters.Count - 1
        Dim i As Integer
        For i = 0 To num2 Step i + 1
            command.Parameters.Add("", RuntimeHelpers.GetObjectValue(strParameters(i)))
        Next
        Try
            command.ExecuteNonQuery()
            command.Parameters.Clear()
            connection.Close()
        Catch exception1 As Exception
            Return False
        End Try
        Return True
    End Function

    Public Shared Function CallTranscation(ByVal ArrayStrSQL() As String) As Boolean
        Dim dbCN As OracleConnection = New OracleConnection()
        Dim adapter As OracleDataAdapter = New OracleDataAdapter()
        Dim command As OracleCommand = New OracleCommand()
        dbCN.ConnectionString = OraConnection
        dbCN.Open()
        Dim transaction As OracleTransaction = dbCN.BeginTransaction()
        Try
            Dim num2 As Integer = Information.UBound(ArrayStrSQL, 1)
            Dim i As Integer
            For i = 0 To num2 Step i + 1
                Dim strSQL As String = ArrayStrSQL(i)
                Thread.Sleep(100)
                ExecuteTranscationSQL(dbCN, strSQL, "")
            Next
            transaction.Commit()
        Catch exception1 As Exception
            ProjectData.SetProjectError(exception1)
            Dim exception As Exception = exception1
            If Not transaction Is Nothing Then
                transaction.Rollback()
                Return False
            End If
        End Try
        Return True
    End Function

    Public Shared Function ExecuteSQL(ByVal strSQL As String, Optional ByVal dsTableName As String = "") As DataSet
        Dim connection As OracleConnection = New OracleConnection()
        Dim adapter As OracleDataAdapter = New OracleDataAdapter()
        Dim command As OracleCommand = New OracleCommand()
        Dim dataSet As DataSet = New DataSet()
        connection.ConnectionString = OraConnection
        connection.Open()
        command.CommandText = strSQL
        command.CommandTimeout = 0
        adapter.SelectCommand = command
        adapter.SelectCommand.Connection = connection
        If dsTableName = "" Then
            adapter.Fill(dataSet)
        Else
            adapter.Fill(dataSet, dsTableName)
        End If
        connection.Close()
        Return dataSet
    End Function

    Public Shared Function ExecuteTranscationSQL(ByVal dbCN As OracleConnection, ByVal strSQL As String, Optional ByVal dsTableName As String = "") As Integer
        Dim command As OracleCommand = New OracleCommand()
        command.Connection = dbCN
        command.CommandText = strSQL
        command.CommandType = CommandType.Text
        Return command.ExecuteNonQuery()
    End Function

    Public Shared Function TestDBConnect() As Boolean
        Dim connection As OracleConnection = New OracleConnection()
        Dim adapter As OracleDataAdapter = New OracleDataAdapter()
        Dim command As OracleCommand = New OracleCommand()
        Dim dsset As DataSet = New DataSet()
        Try
            connection.ConnectionString = OraConnection
            connection.Open()
        Catch exception1 As Exception
            Return False
        End Try
        Return True
    End Function
End Class



 
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验十九 Oracle数据库系统开发实例 -学生成绩管理系统 【一】实验目的 掌握采用VB.NET开发Oracle数据库系统的方法; 掌握开发C/S模式的数据库系统的方法。 【二】实验内容 利用SQL Developer,在scott用户下创建6张表:student、teacher、course、allocate、score 和users表,如表19-1至19-7所示。 表19-1 users表结构 "列名 "数据类型 "非空 "说明 " "用户名"char(10) " "主键 " "密码 "char(10) " " " "级别 "char(10) " " " 表19-2 users表的数据 "用户名 "密码 "级别 " "admin "123456 "系统管理员" 表19-3 student表的结构 "列名 "数据类型 "非空 "说明 " "学号 "char(10) " "主键 " "姓名 "char(10) " " " "性别 "char(2) " "性别,只能取"男"或"女" " "出生日期 "date " " " "班号 "char(10) " " " 表19-4 teacher表的结构 "列名 "数据类型 "非空 "说明 " "编号 "char(10) " "主键 " "姓名 "char(10) " " " "性别 "char(2) " "性别,只能取"男"或"女" " "出生日期 "date " " " "职称 "char(10) " " " "单位 "char(16) " " " 表19-5 course表的结构 "列名 "数据类型 "非空 "说明 " "课程号 "char(10) " "主键 " "课程名 "char(16) " " " 表19-6 allocate表的结构 "列名 "数据类型 "非空 "说明 " "班号 "char(10) " "(班号,课程号)主键 " " " " "课程号为外键 " "课程号 "char(10) " " " "教师编号 "char(10) " "教师编号为外键 " 表19-7 score表的结构 "列名 "数据类型 "非空 "说明 " "学号 "char(10) " "(学号,课程号)主键 " " " " "学号为外键,课程号为外键" "课程号 "char(10) " " " "分数 "float " "分数在0-100之间 " 系统功能 实现学生基本数据的编辑和相关查询。 实现教师基本数据的编辑和相关查询。 实现课程基本数据的编辑和相关查询。 实现各课程任课教师安排和相关查询。 实现学生成绩数据的编辑和相关查询。 实现用户管理和控制功能。 系统结构 本系统对应的项目为"学生成绩管理系统.sln",共有20个窗体和1个公共模块。 本项目的启动窗体为pass,该窗体提示用户输入相应的用户名/密码,并判断是否为 合法用户。如果是非法用户(用户名/密码输入错误),则提示用户再次输入用户名/密 码,若用户非法输入3次,便自动退出系统运行。如果是合法用户,则调用main多文档窗 体启动相应的菜单,用户通过该系统菜单执行相应的操作。系统结构图,如图19- 1所示。 图19-1 系统结构图 系统实现 1. 公共模块 本项目中包含一个公共模块即CommModule.vb模块,包含一些全局变量和全局函数Ex esql。 其中全局变量被本项目中的一些窗体用于在窗体之间传递数据。 全局函数Exesql可以对school数据库中任何表执行Select、Insert、Update和Delet e操作,如果是Select操作,返回相应的DataTable对象,如果是Insert、Update或Dele te操作,对数据表执行更新,返回空(Nothing)。具体代码如下: 2. pass窗体 pass窗体用于接受用户的用户名/密码输入,判断是否为合法用户。如果是合法用户 ,释放该窗体并启动main窗体;否则释放该窗体不启动main窗体即退出系统运行。对于 合法用户,用全局变量userlevel保存当前用户的级别。pass窗体设计如图19- 2、如表19-8所示。 图19-2 pass窗体设计 表19-8 pass窗体的控件属性表 "控件类型 "Name "Text "备注 " "Form "Pass "用户登录 "StartPosition属性 " " " " ":CenterScreen;Co" " " " "ntrolbox属性:fals" " " " "e " "GroupBox "GroupBox1 "登录 " " "Label "Label1 "学生成绩管理系" " " " "统 " " "Label "Label2 "用户名 " " "Label "Label3 "密 码 " " "Butt

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值