So speichern Sie die Datei in der SQL Server-Datenbank, wenn die Datei-Pfad?
Baue ich einige C# desktop-Anwendung und ich muß mit der save-Datei in die Datenbank. Ich habe mit einigen file-chooser, was mir richtigen Pfad der Datei. Jetzt habe ich noch die Frage, wie zu speichern, die Datei in die Datenbank ein, indem Sie mit Ihrem Pfad.
- Welche version von SQL Server verwenden Sie?
- Ich bin mit 2005
- Bitte verwenden Sie nicht die Namen oder Kürzel "mssql". Es gibt kein solches Produkt, und die Verwendung dieser macht es schwieriger für die Menschen zu finden, Ihre Frage später.
- Ok ich habe es, Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dann laden Sie Sie auf die DB wie alles andere, ich bin davon ausgegangen, dass Sie ein varbinary-Spalte (BLOB)
Es hängt wirklich von der Art und Größe der Datei. Wenn es eine text Datei haben, dann könnten Sie
File.ReadAllText()
um eine Zeichenfolge, die Sie speichern in Ihrer Datenbank.Wenn es keine text-Datei, dann können Sie
File.ReadAllBytes()
um die Datei binäre Daten, und speichern Sie dann die für Ihre Datenbank.Aber vorsichtig sein, die Datenbanken sind nicht ein guter Weg, um zu speichern, große Dateien (Sie werden über einige performance-Probleme).
So filestream wäre es aber, da Sie mit SQL 2K5 Sie zu tun haben, die in den Speicher eingelesen Weg; das verbraucht eine Menge Ressourcen.
Erste Spalte vom Typ varchar(max) ist dein Freund, geben Sie ~2 GB Daten, mit zu spielen, das ist ziemlich groß für die meisten Anwendungen.
Nächste Lesen die Daten in ein byte-array und wandelt es in ein Base64String
- Und reverse-den Prozess zum wiederherstellen von
Werden Sie wollen, entsorgen Sie diese Zeichenfolgen, so schnell wie möglich, indem Sie diesen string.leer, sobald Sie fertig sind mit Ihnen!
Aber wenn Sie können einfach ein upgrade auf 2008 und die FILESTREAM verwenden.
Wenn Sie SQL Server 2008 verwenden, könnten Sie FILESTREAM (getting started guide hier). Ein Beispiel für die Verwendung dieser Funktionalität von C# ist hier.
Müssen Sie die Datei in ein byte-array dann speichern Sie diese als blob Feld in der Datenbank möglich, mit dem Namen, den Sie geben wollte, den Dateinamen und den Dateityp.
Könnte man einfach den Prozess umkehren, um die Datei wieder raus.