Dieser Hinweis ergibt
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
' vorausgesetzt ist
' einen geöffnete Connection
' ein "funktionierendes" command
' die dateien bestimmen
Dim SrcFile As String = "D:\Zeit.doc"
Dim DestFile As String = "D:\NeueZeit.doc"
' mal das Ding das aus Bytes besteht zu nem Byte() machen
Dim FS As New IO.FileStream(SrcFile, IO.FileMode.Open)
Dim FSAR(FS.Length - 1) As Byte
FS.Read(FSAR, 0, FS.Length - 1)
FS.Close()
' andere Sachen auslesen
Dim FI As New FileInfo(SrcFile)
Dim FileName As String = FI.Name
Dim FileDate As Date = FI.CreationTime
' dann das Byte() zu einem Datenbankverträglichem MemoryStream umbauen
Dim binformatter As New BinaryFormatter
Dim ms As New IO.MemoryStream
binformatter.Serialize(ms, FSAR)
' den MemoryStream in die datenbank wuchten
' Connection und Command vorausgesetzt
cmd.CommandText = "INSERT INTO [File_Update] (FUP_FileArray," & _
"FUP_FileName, FUP_Date) VALUES (@FUP_FileArray, @FUP_FileName," & _
"@FUP_Date)"
cmd.Parameters.AddWithValue("@FUP_FileArray", ms.ToArray)
cmd.Parameters.AddWithValue("@FUP_FileName", FileName)
cmd.Parameters.AddWithValue("@FUP_Date", FileDate)
' und ab damit zum Server
cmd.ExecuteNonQuery()
' wieder raus mit dem Ding
Dim dt As New DataTable
cmd.Parameters.Clear()
cmd.CommandText = "SELECT LfdNr_FUP, FUP_FileArray, FUP_FileName," & _
"FUP_Date FROM File_UPDate"
Dim da As New SqlClient.SqlDataAdapter(cmd)
da.Fill(dt)
Dim dr As DataRow = dt.Rows(0)
' aus der "Datenbankzelle" wieder ein schreibbares Byte() machen
Dim b As Byte() = CType(dr("FUP_FileArray"), Byte())
FileName = dr("FUP_FileName").ToString
FileDate = Date.Parse(dr("FUP_Date").ToString)
ms = New System.IO.MemoryStream(b)
binformatter = New BinaryFormatter
FSAR = CType(binformatter.Deserialize(ms), Byte())
ms.Close()
' und ab damit auf die festplatte
FS = New FileStream(DestFile, FileMode.Create)
FS.Write(FSAR, 0, FSAR.Length - 1)
FS.Close()
Dim ant As DialogResult = MessageBox.Show("Die datei " & FileName & "" & _
"vom " & FileDate.ToString("dd.MM.yyyy") & " wurde als " & DestFile & _
" wiederhergestellt!" & System.Environment.NewLine & _
"Soll diese geöffnet werden?", "Öffnen", _
MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If ant = Windows.Forms.DialogResult.Yes Then
Process.Start(DestFile)
End Ifbesten dank, Deine tipps sind wie immer hilfreich 0 |