Imports Npgsql Module postgreSQLModule Private pgSqlCon As NpgsqlConnection = New NpgsqlConnection("Host=mes-db.postgres.database.azure.com;Username=jionmt@mes-db;Password=jmtdb6919!!pg;Database=mes-jion") Private sqlCmd As NpgsqlCommand = New NpgsqlCommand Private sqlData As NpgsqlDataReader Public pgDataQuery() As Object Private Function pgDBOpen() As Boolean Try If pgSqlCon.State <> ConnectionState.Open Then pgSqlCon.Open() End If Return False Catch ex As Exception MsgBox("PostgreSQL Command Error:" + vbCrLf + Err.Description) Return True End Try End Function Private Function pgDBClose() As Boolean Try If pgSqlCon.State = ConnectionState.Open Then pgSqlCon.Close() End If Return False Catch ex As Exception MsgBox("PostgreSQL Command Error:" + vbCrLf + Err.Description) Return True End Try End Function Public Function pgDBQueryReader(cmdStr As String) As Integer Try Dim fieldCount As Integer Dim initRun As Boolean = True Dim DataTypeName As String Dim TmpData As Object Dim QueryCount As ULong If pgDBOpen() Then MsgBox("DB 연결을 진행할 수 없습니다.", vbCritical) Return 0 End If sqlCmd.CommandText = cmdStr sqlCmd.Connection = pgSqlCon sqlData = sqlCmd.ExecuteReader fieldCount = sqlData.FieldCount While sqlData.Read If initRun Then ReDim pgDataQuery(fieldCount - 1) initRun = False Else ReDim Preserve pgDataQuery(UBound(pgDataQuery) + fieldCount) End If For cnt = 0 To fieldCount - 1 DataTypeName = sqlData.GetDataTypeName(cnt) If DataTypeName = "DATE" Then TmpData = sqlData.GetDateTime(cnt) Else TmpData = sqlData.GetValue(cnt) End If If DBNull.Value.Equals(TmpData) Or TmpData.Equals(String.Empty) Then pgDataQuery(QueryCount) = "0" Else pgDataQuery(QueryCount) = TmpData End If QueryCount += 1 Next End While If pgDBClose() Then MsgBox("DB 연결 종료를 진행할 수 없습니다.", vbCritical) Return 0 End If Return QueryCount Catch ex As Exception MsgBox(Err.Description) If pgSqlCon.State = ConnectionState.Open Then pgSqlCon.Close() Return 0 End Try End Function End Module