vb.net – 为什么在构建版本时无法在Win 10 64bit中连接到Postgr
发布时间:2020-12-17 00:18:53 所属栏目:大数据 来源:网络整理
导读:TDBACore.vb的代码: Imports System.ComponentModelImports System.DataEditorBrowsable(EditorBrowsableState.Never) _Public MustInherit Class TDBACore Private Shared FRefCount As Integer Friend Shared FIsBeginTran As Boolean = False Friend Sha
|
TDBACore.vb的代码:
Imports System.ComponentModel
Imports System.Data
<EditorBrowsable(EditorBrowsableState.Never)> _
Public MustInherit Class TDBACore
Private Shared FRefCount As Integer
Friend Shared FIsBeginTran As Boolean = False
Friend Shared FConnection As IDbConnection
Friend Shared FTransaction As IDbTransaction
Private disposedValue As Boolean
Friend Shared iRecheckTimeout As Integer
Friend Shared iConnectionTimeOut As Integer
Friend MustOverride Function CreateConnection() As IDbConnection
Public Sub New()
Me.disposedValue = False
If TDBACore.FRefCount = 0 Then
TDBACore.FConnection = Me.CreateConnection()
End If
TDBACore.FRefCount += 1
End Sub
Friend Shared Sub OpenConnection(ByVal ConnectionString As String)
If TDBACore.FConnection.State = ConnectionState.Closed Then
TDBACore.FConnection.ConnectionString = ConnectionString
TDBACore.FConnection.Open()
End If
End Sub
End Class
TDBOpener.vb的代码: Public NotInheritable Class TDBOpener
Inherits TDBACore
Public Shared ReadOnly _TDBOpener As New TDBOpener()
Friend Overrides Function CreateConnection() As IDbConnection
Return New NpgsqlConnection()
End Function
Public Shared Sub SetTimeoutValue(ByVal param_iRecheckTimeout As Integer,ByVal param_iConnectionTimeOut As Integer)
TDBACore.iConnectionTimeOut = param_iConnectionTimeOut
TDBACore.iRecheckTimeout = param_iRecheckTimeout
End Sub
Public Shared Sub Open(ByVal ConnectionString As String)
TDBACore.OpenConnection(ConnectionString)
End Sub
End Class
我通过Npgsql.dll 3.2.2.0测试连接到postgresql: TDBOpener.Open("Server=192.168.1.10;Port=5434;UserId=postgres;Password=123456;Database=testdb;CommandTimeout=300;")
我使用Win 10,64bit,与2017 .Net Framework 4.6 如果我按模式[Debug]运行:它可以运行TDBACore的函数New()并连接ok.
赢得10,64位,与2017年.Net Framework 4.6:
如果我按模式[Release]运行,则无法初始化Public Shared ReadOnly _TDBOpener As New TDBOpener() 我的解决方案编辑功能打开TDBOpener: Public Shared Sub Open(ByVal ConnectionString As String)
If TDBACore.FConnection Is Nothing Then
Dim obOpen = _TDBOpener
End If
TDBACore.OpenConnection(ConnectionString)
End Sub
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
