BLOB-Datei aus SQLite Datenbank lesen und öffnen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von vivil.

    BLOB-Datei aus SQLite Datenbank lesen und öffnen

    Hallo Community,

    ich habe folgendes Problem:
    Ich habe eine SQLite-Datenbank, dort habe ich eine Tabelle protokolldatei die folgende Werte enthält:

    SQL-Abfrage

    1. CREATE TABLE dwaprotokolldatei(
    2. iddwaprotokolldatei integer PRIMARY KEY AUTOINCREMENT NOT NULL,
    3. groesse BIGINT(20),
    4. dateiname varchar(255),
    5. datei BLOB, speicherdatum datetime); "


    Die Tabelle wird auch angelegt und ich kann dort auch meine Dateien hineinspeichern.

    Jetzt ist aber das Problem, dass ich die Datei erstelle, aber nach dem Process.Start wird die Datei direkt wieder gelöscht.
    Woran kann dies liegen ?
    Hier der Code:

    VB.NET-Quellcode

    1. 'Blob-Protokoll öffnen:
    2. If e.RowIndex >= 0 Then
    3. 'Dim sProkotoll As String
    4. 'sProkotoll = Application.StartupPath & "\" & dgProtokolle.Rows(e.RowIndex).Cells("protokolldatei").Value.ToString()
    5. 'Process.Start(sProkotoll)
    6. Dim filename As String
    7. Dim file() As Byte
    8. Try
    9. 'Dateinamen + Pfad in Variable speichern
    10. filename = Application.StartupPath & "\cache\" & dgProtokolle.Rows(e.RowIndex).Cells("protokolldatei").Value.ToString
    11. 'Prüfen, ob das Verzeichnis vorhanden ist
    12. If Directory.Exists(Application.StartupPath & "\cache") Then
    13. 'Prüfen, ob die Datei in dem Verzeichnis schon vorhanden ist
    14. If System.IO.File.Exists(filename) Then
    15. 'Datei öffnen
    16. Process.Start(filename)
    17. Else
    18. 'Wenn die Datei noch nicht vorhanden ist,
    19. 'dann Speichern und öffnen der Datei in das Verzeichnis
    20. file = dgProtokolle.Rows(e.RowIndex).Cells("datei").Value
    21. Dim K As Long
    22. K = UBound(file)
    23. Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write)
    24. fs.Write(file, 0, K + 1)
    25. fs.Close()
    26. Process.Start(filename)
    27. End If
    28. Else
    29. 'Wenn das Verzeichnis nicht vorhanden ist,
    30. 'dann das Verzeichnis erstellen, die Datei in dem Verzeichnis
    31. 'abspeichern und die Datei öffnen
    32. Directory.CreateDirectory(Application.StartupPath & "\cache")
    33. file = dgProtokolle.Rows(e.RowIndex).Cells("datei").Value
    34. Dim K As Long
    35. K = UBound(file)
    36. Dim fs As New FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write)
    37. fs.Write(file, 0, K)
    38. fs.Close()
    39. Process.Start(filename)
    40. End If
    41. Catch ex As Exception
    42. MessageBox.Show(ex.ToString())
    43. End Try
    44. End If



    Ich hoffe, Ihr könnt mir weiterhelfen.

    vivil
    Vielen Dank für die Antwort.
    Habe das Problem selber gefunden.
    Und zwar lag das Problem darin, dass main_Deactivate immer aufgerufen wurde und in diesem Event, werden alle Dateien aus dem Ordner gelöscht.
    Dies habe ich nun auskommentiert und jetzt funktioniert es.
    Eiegene Dummheit.

    Trotzdem vielen Dank