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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |