特郁闷的一件事情,费时费力!记下来,为后来者铺路。
首先,我用VS2010开发对oracle10g数据库的操作,结果发现微软自带的System.Data.OracleClient已经有一些常用对象提示过时;网上说最好用oracle自带的ODP.net操作。
我到oracle网站下载ODAC这个安装包,还注册了用户名,200多M,而且下载特慢,下载后结果是调试了很久都不行。
其次,问用oracle的同事,告诉我安装了oracle客户端后在安装目录下有ODP.net的DLL,直接引用那个就OK了;我在我的oracle客户端安装录D:\oracle\product\10.2.0\db_1\BIN下真的还找到了 Oracle.DataAccess.dll。
最后,VS2010的vb.net工程中引用这个dll,编写对远程oracle数据库的操作测试,通过!
写这么多只是因为忒郁闷!我喜欢开源mysql、sqlite;还没有自己创业,给别人打工不自由啊,只能按照项目要求来。郁闷!!!
'引入oracle本身提供的.net数据引擎
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Data
Imports System.Xml
Imports System.Collections
Imports Oracle.DataAccess
Imports Oracle.DataAccess.Server
Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types
'引入开源日志类库
Imports log4net
Public Class OracleDbOperations
'定义日志对象 OracleHelper.Logging
'Private Shared Log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
Private Shared Log As log4net.ILog = log4net.LogManager.GetLogger("OracleHelper.Logging")
'数据库连接对象
Dim Conn As OracleConnection = Nothing
'事务处理对象
Dim Trans As OracleTransaction = Nothing
'数据库连接字符串
Dim ConnectionStr As String = Nothing
'构造函数
Sub New(ByVal ConnStr As String)
ConnectionStr = ConnStr
Conn = New OracleConnection(ConnectionStr)
End Sub
''' <summary>
''' 关闭数据库连接
''' </summary>
''' <returns>布尔值</returns>
''' <remarks>成功关闭返回true;否则返回false</remarks>
Public Function ConnClose() As Boolean
Try
If Conn.State <> ConnectionState.Closed Then
Conn.Close()
Conn.Dispose()
Conn = Nothing
Log.Info("数据库关闭连接成功!")
Return True
End If
Catch ex As Exception
'写日志
Log.Error("数据库关闭连接失败!")
End Try
Return False
End Function
''' <summary>
''' 打开数据库连接
''' </summary>
''' <returns>布尔值</returns>
''' <remarks>成功关闭返回true;否则返回false</remarks>
Public Function ConnOpen() As Boolean
Try
If Conn.State <> ConnectionState.Open Then
Conn.Open()
Log.Info("数据库打开连接成功!")
Return True
End If
Catch ex As Exception
'写日志
Log.Error("数据库打开连接失败!")
End Try
Return False
End Function
''' <summary>
''' 执行SQL语句或者存储过程(对于输入输出参数值为nothing的字段进行特殊