From 45a132715bc2128ec2a310d78fb203ea61987baa Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Wed, 10 Feb 2021 10:49:31 +0100 Subject: [PATCH] Database: Add Alternate GetDatatableWithConnection2 --- Modules.Database/MSSQLServer.vb | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/Modules.Database/MSSQLServer.vb b/Modules.Database/MSSQLServer.vb index deb8c1eb..93742d74 100644 --- a/Modules.Database/MSSQLServer.vb +++ b/Modules.Database/MSSQLServer.vb @@ -201,6 +201,52 @@ Public Class MSSQLServer End Try End Function + Public Function GetDatatableWithConnection2(SqlCommand As String, ConnectionString As String) As DataTable + Try + If TestCanConnect(ConnectionString) = False Then + Return Nothing + End If + + _Logger.Debug("GetDatatableWithConnection2: Running Query [{0}]", SqlCommand) + + Using oConnection = GetSQLConnection(ConnectionString) + Using oSQLCOmmand = oConnection.CreateCommand() + oSQLCOmmand.CommandText = SqlCommand + oSQLCOmmand.CommandTimeout = _Timeout + + Dim oTable As DataTable = New DataTable("DD_RESULT") + + Using oReader As SqlDataReader = oSQLCOmmand.ExecuteReader() + Dim oSchemaTable As DataTable = oReader.GetSchemaTable() + + For Each oRow As DataRow In oSchemaTable.Rows + Dim oDataColumn As New DataColumn + oDataColumn.ColumnName = oRow("ColumnName").ToString() + oDataColumn.DataType = Type.GetType(oRow("DataType").ToString()) + oTable.Columns.Add(oDataColumn) + Next + + While (oReader.Read()) + Dim oRow As DataRow = oTable.NewRow() + + For index = 0 To oTable.Columns.Count - 1 + oRow.Item(index) = oReader.Item(index) + Next + + oTable.Rows.Add(oRow) + End While + + Return oTable + End Using + End Using + End Using + Catch ex As Exception + _Logger.Warn($"GetDatatableWithConnection2 failed SQLCommand [{SqlCommand}] - ERROR: {ex.Message}") + + Return Nothing + End Try + End Function + Public Function ExecuteNonQuery(SQLCommand As String, Timeout As Integer) As Boolean Implements IDatabase.ExecuteNonQuery Try If TestCanConnect() = False Then