关于oracle.DataAccess.Client
2015-03-10 14:41
183 查看
Imports Oracle.DataAccess.Client
Imports System.Data.SqlClient
oracle.DataAccess.Client类下面方法:OracleConnection,OracleCommand,OracleTransaction,OracleDataAdapter
Imports System.Data.SqlClient
oracle.DataAccess.Client类下面方法:OracleConnection,OracleCommand,OracleTransaction,OracleDataAdapter
Public Class clsODP Private _sConnectionString As String = String.Empty Private _sMessage As String = String.Empty Private _sSQL As String = String.Empty Private _oOdpCn As OracleConnection = Nothing Private _oOdpCmd As OracleCommand = Nothing Private _oOdpTrn As OracleTransaction = Nothing Private _oOdpAdpt As OracleDataAdapter = Nothing #Region "Public Property" Public Property ConnectionString() As String Get Return _sConnectionString End Get Set(ByVal Value As String) _sConnectionString = Value End Set End Property Public ReadOnly Property Message() As String Get Return _sMessage End Get End Property Public ReadOnly Property SQL() As String Get Return _sSQL End Get End Property Public Property Command() As OracleCommand Get Return _oOdpCmd End Get Set(ByVal value As OracleCommand) _oOdpCmd = value End Set End Property #End Region Public Sub New() End Sub Public Sub New(ByVal psconnectionString As String) _sConnectionString = psconnectionString Open(psconnectionString) End Sub Public Function IsDisconnect(ByVal dbConnectionString As String) As Boolean IsDisconnect = True Try 'Reconnect Database When It's Disconnected With _oOdpCmd .ArrayBindCount = 0 .BindByName = True .CommandType = CommandType.Text .CommandText = "SELECT NULL FROM DUAL" .ExecuteNonQuery() End With Catch ex As Exception Open(dbConnectionString) End Try IsDisconnect = False End Function Public Function Open(Optional ByVal psConnectionString As String = "") As Boolean Try If _sConnectionString = "" And psConnectionString = "" Then _sMessage = "Database connection string is empty!" Open = False Else If psConnectionString <> "" Then _sConnectionString = psConnectionString If _oOdpCn Is Nothing Then _oOdpCn = New OracleConnection With _oOdpCn If .State <> System.Data.ConnectionState.Closed Then .Close() .ConnectionString = _sConnectionString .Open() End With If _oOdpCmd Is Nothing Then _oOdpCmd = New OracleCommand _oOdpCmd.Connection = _oOdpCn _sMessage = "" Return True End If Catch ex As Exception _sMessage = ex.Message Return False End Try End Function Public Function Close() As Boolean Try If Not _oOdpTrn Is Nothing Then _oOdpTrn.Rollback() _oOdpTrn.Dispose() _oOdpTrn = Nothing End If If Not _oOdpAdpt Is Nothing Then _oOdpAdpt.Dispose() _oOdpAdpt = Nothing End If If Not _oOdpCmd Is Nothing Then _oOdpCmd.Dispose() _oOdpCmd = Nothing End If If _oOdpCn.State <> ConnectionState.Closed Then _oOdpCn.Close() _oOdpCn.Dispose() _oOdpCn = Nothing End If _sMessage = "" Return True Catch ex As Exception _sMessage = ex.Message Return False End Try End Function Public Function BeginTrans() As Boolean If _oOdpCn.State <> System.Data.ConnectionState.Open Then BeginTrans = Open() If Not BeginTrans Then Exit Function End If Try _oOdpTrn = _oOdpCn.BeginTransaction(System.Data.IsolationLevel.ReadCommitted) Return True Catch ex As Exception _sMessage = ex.Message Return False End Try End Function Public Function CommitTrans() As Boolean Try _oOdpTrn.Commit() _oOdpTrn.Dispose() _oOdpTrn = Nothing Return True Catch ex As Exception _sMessage = ex.Message Return False End Try End Function Public Function RollbackTrans() As Boolean Try _oOdpTrn.Rollback() _oOdpTrn.Dispose() _oOdpTrn = Nothing Return True Catch ex As Exception _sMessage = ex.Message Return False End Try End Function Public Sub FillDataTable(ByRef dataTable As DataTable) FillDataTable(_sSQL, dataTable) End Sub Public Function FillDataTable() As DataTable Dim loDT As New DataTable FillDataTable(_sSQL, loDT) Return loDT End Function Public Function FillDataTable(ByVal tableName As String) As DataTable Dim loDT As New DataTable(tableName) FillDataTable(_sSQL, loDT) Return loDT End Function Public Function FillAllData(ByVal tableName As String, ByVal poDataTable As DataTable, ByVal destinationTable As DataTable) If _oOdpCn.State <> System.Data.ConnectionState.Open Then FillAllData = Open() If Not FillAllData Then Exit Function End If Try Dim OracleCopy As OracleBulkCopy = New OracleBulkCopy(ConnectionString, SqlBulkCopyOptions.UseInternalTransaction) OracleCopy.DestinationTableName = tableName For i = 0 To poDataTable.Columns.Count - 1 OracleCopy.ColumnMappings.Add(poDataTable.Columns(i).ColumnName, destinationTable.Columns(i).ColumnName) Next OracleCopy.WriteToServer(poDataTable) OracleCopy.Close() Return True Catch ex As Exception _sMessage = ex.Message Return False End Try End Function Public Function FillDataTable(ByVal psSQL As String, ByRef poDataTable As DataTable) As Boolean If _oOdpCn.State <> System.Data.ConnectionState.Open Then FillDataTable = Open() If Not FillDataTable Then Exit Function End If Try With _oOdpCmd .CommandType = System.Data.CommandType.Text .CommandText = psSQL _sSQL = psSQL End With _oOdpAdpt = New OracleDataAdapter(_oOdpCmd) _oOdpAdpt.Fill(poDataTable) _sMessage = "" Return True Catch ex As Exception _sMessage = ex.Message Return False End Try End Function Public Function ExecuteScalar(ByVal psSQL As String, ByRef psScalar As String) As Boolean If _oOdpCn.State <> System.Data.ConnectionState.Open Then ExecuteScalar = Open() If Not ExecuteScalar Then Exit Function End If Try Dim objES As Object With _oOdpCmd .CommandType = System.Data.CommandType.Text .CommandText = psSQL _sSQL = psSQL objES = .ExecuteScalar If objES Is DBNull.Value Or objES Is Nothing Then psScalar = "" Else psScalar = objES.ToString End If End With _sMessage = "" Return True Catch ex As Exception _sMessage = ex.Message Return False End Try End Function Public Function ExecuteNonQuery(ByVal psSQL As String, Optional ByRef piAffected As Integer = 0) As Boolean If _oOdpCn.State <> System.Data.ConnectionState.Open Then ExecuteNonQuery = Open() If Not ExecuteNonQuery Then Exit Function End If Try With _oOdpCmd .CommandType = System.Data.CommandType.Text .CommandText = psSQL _sSQL = psSQL piAffected = .ExecuteNonQuery End With _sMessage = "" Return True Catch ex As Exception _sMessage = ex.Message Return False End Try End Function Public Function ExecuteInTransaction(ByVal paSQL As String()) As Boolean Dim _oCmd As OracleCommand = Nothing Dim _oTrn As OracleTransaction = Nothing Dim sql As String = "" Try Open() _oCmd = New OracleCommand _oCmd.Connection = _oOdpCn _oTrn = _oCmd.Connection.BeginTransaction(System.Data.IsolationLevel.ReadCommitted) If IsNothing(paSQL) Then Return True End If If paSQL.Length = 0 Then Return True End If For Each sql In paSQL With _oCmd .CommandText = sql .ExecuteNonQuery() End With Next _oTrn.Commit() Return True Catch ex As Exception _oTrn.Rollback() _sMessage = ex.Message & " [SQL]:" & sql Return False Finally If Not IsNothing(_oCmd) Then _oCmd.Dispose() If _oOdpCn.State = ConnectionState.Open Then _oOdpCn.Close() End If End Try End Function Public Shared Function NVL(ByVal objectToCheck As Object, ByVal objectWhenNull As Object) As Object If IsDBNull(objectToCheck) Or IsNothing(objectToCheck) Then Return objectWhenNull Else Return objectToCheck End If End Function End Class
相关文章推荐
- Oracle.DataAccess.Client.OracleException: 提供程序与此版本的 Oracle 客户机不兼容
- 关于oracle连“System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本”
- 无法将类型为“Oracle.DataAccess.Client.OracleParameter”的对象强制转换为类型“Oracle.DataAccess.Client.OracleParameter”。 Oracle.DataAccess
- VS通过Oracle驱动连接数据库,对图片进行存取操作(Oracle.DataAccess.Client.dll)
- 关于在Asp.net下使用Oracle.DataAccess.dll(Oracle10g)执行参数化Update无效的解决方案之一
- 关于ORACLE提示:"System.Data.OracleClient.OracleException: ORA-06550: 第 1 行, 第 7 列: \nPLS-00306: 调用 'xxxxxx' 时参数个数或类型错误\nORA-06550: 第 1 行, 第 7 列: \nPL/SQL: Statement ignored\n\r\n 的错误
- 关于IIS部署时出现“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”的问题解决摘要
- System.Data.OracleClient 与Oracle.ManagedDataAccess.Client
- 无法对属性或索引器“Oracle.DataAccess.Client.OracleCommand.Transaction”赋值 -- 它是只读的 OracleHelper.cs 500 17
- VS报错:Oracle.ManagedDataAccess.Client.OracleException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
- Oracle.ManagedDataAccess.Client注意事项
- Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery() 问题处理方法
- “Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。
- EF:Oracle.DataAccess.Client.OracleException: ORA-12154: TNS:could not resolve the connect identifier specified
- 关于未能加载文件或程序集“Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。试图加载格式不正确的程序的解决方案
- “Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常
- Oracle.DataAccess.Client.OracleCommand”的类型初始值设定项引发异常。
- 无法读取配置节“oracle.manageddataaccess.client”,因为它缺少节声明
- zhgl 错误 其他信息: “Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。