簡體   English   中英

C#3.0 - 如何從MemoryStream將文件保存到數據庫?

[英]C# 3.0 - How can I save a file to database from a MemoryStream?

我正在嘗試將PDF文件保存到SQL Server,我已經有一個生成PDF的方法,但是打開一個顯示該文件的窗口。

但是,現在我必須生成PDF,但必須將其保存到圖像字段中的數據庫中。

我必須從MemoryStream對象中保存這個文件,我准備保存,顯示等。

我有這個:

MemoryStream m = PDFHelper.gereratePDF(text, title);

我正在googling aroung,我想我必須將這個MemoryStream轉換為FileStream,所以我可以將它保存到DB,但我不知道如何。

謝謝!!

為什么首先要將其保存到文件中以便將其保存到數據庫中?

如果你這樣做,最好的方法可能是使用MemoryStream.WriteTo ,傳入FileStream 但是,如果您只需要將數據作為字節數組來寫入數據庫,則可以使用ToArray方法。

(將數據寫入數據庫的確切方式將取決於您一般如何訪問數據庫。如果您告訴我們更多相關信息,我們可能會提供更具體的建議。)

這是一個示例方法。 使用memorystream.ToArray()將文檔作為字節數組傳遞。

public static Boolean SaveDocument(Guid candidateId, String fileName, String contentType, Byte[] data) {
    Boolean bResult = false;

    Database db = DatabaseFactory.CreateDatabase(Databases.Hphr.ToString());
    using (DbCommand dbCommand = db.GetStoredProcCommand("CandidateDocumentSave")) {
        db.AddInParameter(dbCommand, "CandidateId", DbType.Guid, candidateId);
        db.AddInParameter(dbCommand, "FileName", DbType.String, fileName);
        db.AddInParameter(dbCommand, "ContentType", DbType.String, contentType);
        db.AddInParameter(dbCommand, "FileType", DbType.String, Path.GetExtension(fileName).Substring(1));
        db.AddInParameter(dbCommand, "Data", DbType.Binary, data);
        db.ExecuteNonQuery(dbCommand);
        bResult = true;
    } // using dbCommand
    return bResult;
} // method::SaveDocument

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM