| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 
 | Imports System.Configuration
Imports System.Reflection
Imports ANTI_MALI_DTO
Imports System.Data.SqlClient
 
Public Class Base
    Private Shared Function CreateConnection() As SqlConnection
        Dim cnx As New SqlConnection
 
        'Open the configuration file using the dll location
        Dim myDllConfig As Configuration = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly.Location)
        ' Get the appSettings section
        Dim myDllConfigAppSettings As AppSettingsSection = DirectCast(myDllConfig.GetSection("appSettings"), AppSettingsSection)
        ' return the desired field 
        'myDllConfigAppSettings.Settings("MyConnectionString").Value       
 
        cnx.ConnectionString = myDllConfigAppSettings.Settings("MyConnectionString").Value
        Return cnx
    End Function
 
    Protected Shared Function CreateSpCommand(spName As String) As SqlCommand
        Dim cmd As New SqlCommand
        cmd.CommandType = CommandType.StoredProcedure
        cmd.CommandText = spName
        cmd.Connection = CreateConnection()
        Return cmd
    End Function
 
    Protected Shared Function CreateParameter(name As String, value As Integer) As SqlParameter
        Dim param As New SqlParameter
        param.Direction = ParameterDirection.Input
        param.ParameterName = name
        param.SqlDbType = SqlDbType.Int
        param.SqlValue = value
        Return param
    End Function
 
    Protected Shared Function CreateParameter(name As String, value As Short) As SqlParameter
        Dim param As New SqlParameter
        param.Direction = ParameterDirection.Input
        param.ParameterName = name
        param.SqlDbType = SqlDbType.SmallInt
        param.SqlValue = value
        Return param
    End Function
 
    Protected Shared Function CreateParameter(name As String, value As Byte) As SqlParameter
        Dim param As New SqlParameter
        param.Direction = ParameterDirection.Input
        param.ParameterName = name
        param.SqlDbType = SqlDbType.TinyInt
        param.SqlValue = value
        Return param
    End Function
 
 
    Protected Shared Function CreateParameter(name As String, value As Byte(), size As Integer) As SqlParameter
        Dim param As New SqlParameter
        param.Direction = ParameterDirection.Input
        param.ParameterName = name
        param.SqlDbType = SqlDbType.VarBinary
        param.Size = size
        param.Value = value
        Return param
    End Function
 
    Protected Shared Function CreateParameter(name As String, value As String, size As Integer) As SqlParameter
        Dim param As New SqlParameter
        param.Direction = ParameterDirection.Input
        param.ParameterName = name
        param.SqlDbType = SqlDbType.VarChar
        param.Size = size
        param.SqlValue = value
        Return param
    End Function
 
    Protected Shared Function CreateParameter(name As String, value As DateTime) As SqlParameter
        Dim param As New SqlParameter
        param.Direction = ParameterDirection.Input
        param.ParameterName = name
        param.SqlDbType = SqlDbType.DateTime2
        param.SqlValue = value
        Return param
    End Function
 
    Protected Shared Function CreateParameter(name As String, value As Boolean) As SqlParameter
        Dim param As New SqlParameter
        param.Direction = ParameterDirection.Input
        param.ParameterName = name
        param.SqlDbType = SqlDbType.Bit
        param.SqlValue = value
        Return param
    End Function
 
    Protected Shared Function CreateParameter(name As String, value As Decimal) As SqlParameter
        Dim param As New SqlParameter
        param.Direction = ParameterDirection.Input
        param.ParameterName = name
        param.SqlDbType = SqlDbType.Decimal
        param.SqlValue = value
        Return param
    End Function
 
    Protected Shared Function CreateOutputParameter(name As String, type As SqlDbType) As SqlParameter
        Dim param As New SqlParameter
        param.Direction = ParameterDirection.Output
        param.SqlDbType = type
        param.ParameterName = name
        Return param
    End Function
 
    Protected Shared Function CreateOutputParameter(name As String, type As SqlDbType, size As Integer) As SqlParameter
        Dim param As New SqlParameter
        param.Direction = ParameterDirection.Output
        param.ParameterName = name
        param.SqlDbType = type
        param.Size = size
        Return param
    End Function
 
    Protected Shared Function GetSingleDTO(Of T As DTOBase)(ByRef command As SqlCommand) As T
        Dim dto As T = Nothing
 
        Try
            command.Connection.Open()
 
            Dim reader As SqlDataReader = command.ExecuteReader()
            If reader.HasRows Then
                reader.Read()
                Dim parser As Parser = DTOParserFactory.GetParser(GetType(T))
                parser.PopulateOrdinals(reader)
                dto = DirectCast(parser.PopulateDTO(reader), T)
                reader.Close()
                'Else
                '    ' Whever there's no data, we return null.
                '    dto = Nothing
            End If
        Catch e As Exception
            Throw New Exception("Error populating data", e)
        Finally
            command.Connection.Close()
            command.Connection.Dispose()
        End Try
 
        ' return the DTO, it's either populated with data or null.
        Return dto
    End Function
 
    Protected Shared Function GetDTOList(Of T As DTOBase)(ByRef command As SqlCommand) As List(Of T)
        Dim dtoList As New List(Of T)()
 
        Try
            command.Connection.Open()
 
            Dim reader As SqlDataReader = command.ExecuteReader()
            If reader.HasRows Then
                ' Get a parser for this DTO type and populate
                ' the ordinals.
                Dim parser As Parser = DTOParserFactory.GetParser(GetType(T))
                parser.PopulateOrdinals(reader)
                ' Use the parser to build our list of DTOs.
                While reader.Read()
                    Dim dto As T = Nothing
                    dto = DirectCast(parser.PopulateDTO(reader), T)
                    dtoList.Add(dto)
                End While
 
                reader.Close()
            Else
                ' Whenever there's no data, we return null.
                dtoList = New List(Of T)
            End If
        Catch e As Exception
            Throw e
        Finally
            command.Connection.Close()
            command.Connection.Dispose()
        End Try
 
        Return dtoList
    End Function
 
    Protected Shared Sub ExecuteNonQuery(cmd As SqlCommand)
        cmd.Connection.Open()
        cmd.ExecuteNonQuery()
        cmd.Connection.Close()
    End Sub
 
    Protected Shared Sub ExecuteQuery(cmd As SqlCommand)
        cmd.Connection.Open()
        cmd.ExecuteReader()
        cmd.Connection.Close()
    End Sub
End Class | 
Partager