Feedback

VB - VB.Net: Parameter einer SQLite-Abfrage sehen

Veröffentlicht von am 28.02.2018
(0 Bewertungen)
Dieses Code-Snippet verwende ich gerne zum Debuggen. Wenn man im Debugger einen Stoppunkt setzt, kann man im Direktfenster die Abfrage mit den Parameterinhalten ersetzt anzeigen.

Mir ist klar, dass das Snippet Mist liefert, wenn der Parameterinhalt gleich einem Parameternamen ist. Aber zum Debuggen funktioniert es. Mit Änderungen funktioniert es auch mit anderen Datenbank-Commands.
Module globales

    ''' <summary>
    ''' Übersetzt die Parameter eines SQLite-Commands in lesbaren Code
    ''' </summary>
    ''' <param name="com">SQLiteCommand</param>
    ''' <returns>String</returns>
    Function see_sqlite(ByRef com As SQLiteCommand) As String
        Dim types As New List(Of DbType)
        Dim n, v As String
        types.Add(DbType.Int16)
        types.Add(DbType.Int32)
        types.Add(DbType.Int64)
        types.Add(DbType.Byte)
        types.Add(DbType.UInt16)
        types.Add(DbType.UInt32)
        types.Add(DbType.UInt64)
        types.Add(DbType.Decimal)
        types.Add(DbType.Double)

        Dim tmpsb As New Text.StringBuilder
        tmpsb.Append(com.CommandText)
        com.Parameters.Add("", DbType.Int16)
        For Each pa As SQLiteParameter In com.Parameters
            n = pa.ParameterName.ToString
            If n <> "" Then
                If pa.Value Is Nothing Then
                    v = ""
                Else
                    v = pa.Value.ToString
                End If
                If types.Contains(pa.DbType) Then
                    tmpsb.Replace(n & " ", v & " ")
                    tmpsb.Replace(n & ")", v & ")")
                    tmpsb.Replace(n, v)
                Else
                    tmpsb.Replace(n & " ", "'" & v & "' ")
                    tmpsb.Replace(n & ")", "'" & v & "')")
                    tmpsb.Replace(n, "'" & v & "'")
                End If
            End If
        Next
        Return tmpsb.ToString
    End Function

End Module

Abgelegt unter vb.netsqliteparameter.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!