簡體   English   中英

使用C#將數據從SQL Image字段保存到pdf,msg,xls,txt文件

[英]Save data from SQL Image field to pdf, msg, xls, txt file using C#

我在DB中有一個表,其類型為Image。 類型為image的文件存儲來自附件的數據(從aspx應用程序上載),數據可能是pdf,xls,msg,txt等。該表還具有一個字段,用於存儲附件名稱和擴展名類型。

我必須將該表中所有行的附件保存回我的文件系統中。

我已經嘗試了以下操作,但是我沒有執行以下操作的權限

DECLARE @ObjectToken INT
EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
EXEC sp_OASetProperty @ObjectToken, 'Type', 1
EXEC sp_OAMethod @ObjectToken, 'Open'
EXEC sp_OAMethod @ObjectToken, 'Write', NULL, Content
EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, 'c:/file.msg', 2
EXEC sp_OAMethod @ObjectToken, 'Close'
EXEC sp_OADestroy @ObjectToken

誰能讓我知道如何使用C#將所有附件保存到文件系統。 我正在考慮使用“保存”按鈕構建Windows Form App。

如果只想使用快速而骯臟的方法將文件與ADO一起使用,請使用VBS:

Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = 1 ' = adTypeBinary
BinaryStream.Open

Dim UUIDARRAY() 
Redim UUIDARRAY(1000)
strConnection = "Driver={SQL Server};Server=<servername>;Database=<databasename>;Uid=<username>;Pwd=<userpasswor>;"
Set cn = CreateObject("ADODB.Connection")
cn.ConnectionString = strConnection    
cn.Open
If cn.State = 1 Then
    Set objrs=cn.execute( "Select <data> FROM <table> where <something>" )
    Dim error
    While not (objrs is nothing)
        set field = objrs.Fields(0)
        chunk_data = field.GetChunk(65536)
        BinaryStream.Write chunk_data

    Set objrs = objrs.NextRecordSet
    Wend
    cn.close
    BinaryStream.SaveToFile "binarydata.bin", 2 '= adSaveCreateOverWrite'
else
    wscript.echo  "Could not connect"
end if

只需使用此腳本並將所有<...>替換為相關信息即可。

在您的SQL服務器上執行此操作(需要sa權限)

sp_configure

‘show advanced options’, 1

GO

reconfigure

GO

暫無
暫無

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

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