2016-06-16 11 views
0

Ich habe auf eine Datenbank zugegriffen, die Mitarbeiterfotos durch eine C# -Abfrage speichert. Meine Frage ist: Wie kann ich die Fotos in einer normalen Datei auf meiner Festplatte durch ein C# -Programm speichern? Um die Datei zu erstellen, verstehe ich, dass ich FileMode.Create und vielleicht die SaveFileDialog Klasse verwenden werde? DieseWie speichere ich eine Binärdatei, auf die von einer Datenbank in C# zugegriffen wird?

ist, wie ich in der Datei gelesen haben:

using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    SqlCommand command = new SqlCommand(queryString, connection); 
    connection.Open(); 
    SqlDataReader reader = command.ExecuteReader(); 
    try 
    { 
     while (reader.Read()) 
     { 
      Console.WriteLine(String.Format("{0}, {1}, {2}, {3}", reader["emp_id"], reader["first_name"], reader["last_name"], reader["photo"])); 
      FileStream fs = new FileStream(SaveFileDialog.FileName, FileMode.Open); //something of this nature? 
     } 
    } 
    finally 
    { 
     reader.Close(); 
    } 
} 

Ich habe notwendigen Informationen aus this SO question extrahiert, aber es hat mich wirklich nicht auf das Speichern der Datei helfen. Also frage ich nach etwas Hilfe beim Speichern einer Binärdatei, die ein Bild ist, das ich auf meinem Computer speichern möchte.

+0

Welche Datenbank? Was ist der Datentyp der Spalte, die die Bilddaten enthält? –

+0

@alex Es ist eine Microsoft Datenbank. Und die Spalte ist eine binäre Zeichenfolge. –

Antwort

3

File.WriteAllBytes schreiben Bytes in eine Datei mit einem bestimmten Namen.

in voller Höhe, so etwas wie

File.WriteAllBytes(fileName, (byte[])reader["photo"]); 

können Sie einen Dateidialog speichern verwenden, um die Dateien zu speichern, ja. Aber das ist eher eine Frage des UX-Designs (und des Anwendungsdesigns). Im Allgemeinen spielen Loops und Dialoge nicht sehr gut - wenn Sie mich 10 verschiedene Dateinamen wählen lassen, um Fotos mit Namen zu speichern, die Sie selbst wählen könnten, werde ich auf Sie wütend sein: P

+0

Haha danke für die Antwort! Ich denke, ich werde nur einige Zeichenfolgen für die Dateinamensvariable verketten. –