vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Datei in Datenbank "kopieren" 
Autor: spike24
Datum: 12.07.07 17:38

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 If
besten dank, Deine tipps sind wie immer hilfreich
0
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datei in Datenbank "kopieren"866spike2412.07.07 16:27
Re: Datei in Datenbank "kopieren"622ModeratorDaveS12.07.07 16:34
Re: Datei in Datenbank "kopieren"1.265spike2412.07.07 17:38
Re: Datei in Datenbank "kopieren"602ModeratorDaveS12.07.07 18:24

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel