用stream組件就可以了,給你個示例
保存文件到資料庫中
Sub s_SaveFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConcstr As String
'讀取文件到內容
Set iStm = New ADODB.Stream
With iStm
.Type = adTypeBinary '二進制模式
.Open
.LoadFromFile App.Path + "\test.jpg"
End With
'打開保存文件的表
Set iRe = New ADODB.Recordset
With iRe
.Open "select * from img", iConc, 1, 3
.AddNew '新增一條記錄
.Fields("photo") = iStm.Read
.Update
End With
『貳』 如何使用vba 將excel指定行的數據導入到sql2008中
你在EXCEL中增加一個列名為ID,後在VBA中寫以下代碼,並引用Microsoft
ActiveX
Data
Objects
2.8後執行
Public
Sub
寫入SQL2008()
Dim
cnn
As
New
ADODB.Connection
Dim
SQL
As
String,
mydata
As
String,
mytable
As
String
Dim
i%
mydata
=
"KKKK"
'指定要修改的資料庫
mytable
=
"aaaa"
'指定數據表
'建立與指定SQL
Server資料庫的連接
cnn.ConnectionString
=
"Provider=SQLOLEDB;"
_
&
"User
ID=sa;"
_
'sa改成你SQL賬號(通常不用改)
&
"Password
=123;"
_
'123改成你SQL2008密碼
&
"Data
Source=sowin;"
_
'sowin改成你的SQL2008的電腦名,
'如sql2008在網路上,則sowin改成IP地址(如192.168.0.1)
&
"Initial
Catalog
="
&
mydata
cnn.Open
'查詢全表某些欄位的記錄
for
i
=
2
to
[a65536].end(xlup).row
SQL
=
"UPDATE
"
&
mytable
&
"
SET
x="
&
cells(i,1)
&
","
&
_
"y="
&
cells(i,2)
&
","
&
_
"z="
&
cells(i,3)
&
","
&
_
"where
id=11"
next
i
'注意引號裡面的空格
'資料庫沒有更新的數據則用INSERT
INTO
'SQL
=
"INSERT
INTO
"
&
mytable
&
"
COLUMNS(x,y,z)"
&
_
"
VALUES('"
&
CELLS(i,1)
&
"','"
&
cells(i,2)
&
"','"
&
cells(i,3)
&"')"
cnn.Execute(SQL)
cnn.Close
Set
cnn
=
Nothing
End
Sub
『叄』 vb.net 中如何將圖片保存到SQL資料庫
保存路徑最好,我幾個項目都是這樣。
具體如何保存,需要看你使用什麼樣的上傳控制項才可以定。
個人推薦一個是CFUPDATE,不錯的控制項,你可以了解,如果有不清楚,可以再問我。
『肆』 vba 上傳數據到sql 資料庫問題
如果有數據就執行你的上傳處理,沒數據就退出
while cells(1,i) <> ""
上傳處理
i = i + 1
Wend
『伍』 VBA自動導入excel數據到SQL資料庫,求代碼
Subtest()
DimcnAsADODB.Connection
DimstrSQLAsString
DimlngRecsAffAsLong
DimHeadersAsBoolean
DimstrConnAsString
DimpathAsString
OnErrorGoTotest_Error
Headers=True
path="c:20131212.xls"
strConn="Provider=Microsoft.Jet.OLEDB.4.0;"&_
"DataSource="&path&";"&_
"ExtendedProperties=""Excel8.0;IMEX=1;HDR=YES"""
Debug.PrintstrConn
Setcn=NewADODB.Connection
cn.OpenstrConn
'ImportbyusingJetProvider.
strSQL="InsertINTO[odbc;Driver={SQLServer};"&_
"Server=192.168.6.111;Database=answer;"&_
"UID=sa;PWD=password].test1"&_
"Select*FROM[Sheet1$]"
Debug.PrintstrSQL
cn.ExecutestrSQL,lngRecsAff
Debug.Print"Recordsaffected:"&lngRecsAff
cn.Close
Setcn=Nothing
OnErrorGoTo0
ExitSub
test_Error:
MsgBox"Error"&Err.Number&"("&Err.Description&")"
EndSub
『陸』 vc mfc中怎麼通過按鈕 「上傳圖片」把本機上的圖片讀入SQL資料庫
圖片就是文件嘛,把文件數據全部讀入到內存然後插入到
sql資料庫
中就可以了,但不建議這樣做,因為圖片數據比較大,存入資料庫會很慢,檢索也會很慢,建議只存入圖片的路徑,比如你要存入的圖片為c:\\test.bmp,那麼你存入數據的信息就為c:\\test.bmp,當有地方要使用該圖片時,只需取出c:\\test.bmp這個路徑就可以操作該圖片了。
『柒』 vb.net 中如何將圖片保存到SQL資料庫
#Region "二進制文件的存儲函數" Public Function BinaryToFile(ByRef TableRowColItem As Object, ByVal FileName As String) As Boolean Dim data As Byte() = TableRowColItem
Dim myfilestream As New System.IO.FileStream(FileName, IO.FileMode.Create)
myfilestream.Write(data, 0, data.Length)
myfilestream.Close()
Return True
End Function Public Function BinaryToImage(ByRef TableRowColItem As Object, ByRef image As Image) As Boolean Dim data As Byte() = TableRowColItem Dim imgStream As New System.IO.MemoryStream '(data)
imgStream.Write(data, 0, data.Length)
image = System.Drawing.Image.FromStream(imgStream)
imgStream.Close()
imgStream.Dispose() Return True
End Function
Public Function BinaryFromFile(ByVal FileName As String, ByRef TableRowColItem As Object) As Boolean Using myfilestream As New FileStream(FileName, FileMode.Open, FileAccess.Read)
Dim data() As Byte
ReDim data(myfilestream.Length - 1)
myfilestream.Read(data, 0, myfilestream.Length)
myfilestream.Close()
TableRowColItem = data End Using
Return True
End Function Public Function BinaryFromImage(ByRef Image As Image, ByRef TableRowColItem As Object) As Boolean
Dim imgStream As New MemoryStream
Dim b As New Bitmap(Image) b.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg) Dim data As Byte() = imgStream.GetBuffer
TableRowColItem = data
data = TableRowColItem
imgStream.Close()
imgStream.Dispose() Return True
End Function Public Function BinaryFromImage(ByVal Image As Image, ByRef TableRowColItem As Object, ByVal imgFormat As System.Drawing.Imaging.ImageFormat) As Boolean
Dim imgStream As New MemoryStream
'Image.Save(imgStream, imgFormat)
'Dim b As New Bitmap(Image)
'b.Save("c:\a.bmp", imgFormat)
'b.Save("c:\a.bmp", imgFormat) Dim data As Byte() = imgStream.GetBuffer TableRowColItem = data
data = TableRowColItem
imgStream.Close()
Return True
End Function
#End Region
『捌』 怎麼讓VB.NET 上傳圖片到SQL 資料庫只保存路徑,圖片保存到文件
圖片和文件的記錄加個地址的欄位,欄位內容是文件和圖片的絕對路徑就好了,那就把圖片和文件弄成2進制存進去,或轉成hash值
『玖』 怎樣把圖片存入SQL資料庫表中
一、先來熟悉一下將要使用的對象方法:
用來獲取上一個頁面傳 遞過來的數據一般是使用Request對象。同樣的,我們也可以使用Request對象 來獲取上傳上來的文件數據,使用的方法是Request.BinaryRead()。
要從資料庫中讀出來圖片的數據顯示到網頁上面要用到的方法是:Request.BinaryWrite()。
二、在得到了圖片的數據,要保存到資料庫中的時候,不可以直接使用Insert語句對資料庫進行操作,而是要使用ADO的AppendChunk方法。
同樣的,讀出資料庫中的圖片數據,要使用GetChunk方法。
各個方法的具體語法如下:
*Request.BinaryRead語法:
variant=Request.BinaryRead(count)
參數
variant
返回值保存著從客戶端讀取到數據。
count
指明要從客戶端讀取的數據量大小,這個值小於或者等於使用方法
Request.TotalBytes得到的數據量。
*Request.BinaryWrite語法:
Request.BinaryWritedata
參數
data
要寫入到客戶端瀏覽器中的數據包。
*Request.TotalBytes語法:
variant=Request.TotalBytes
參數
variant
返回從客戶端讀取到數據量的位元組數。
*AppendChunk語法
將數據追加到大型文本、二進制數據Field或Parameter對象。
object.AppendChunkData
參數
objectField或Parameter對象
Data變體型,包含追加到對象中的數據。
說明
使用Field或Parameter對象的AppendChunk方法可將長二進制或字元數
據填寫到對象中。在系統內存有限的情況下,可以使用AppendChunk方法對長
整型值進行部分而非全部的操作。
*GetChunk語法
返回大型文本或二進制數據Field對象的全部或部分內容。
variable=field.GetChunk(Size)
返回值
返回變體型。
參數
Size長整型表達式,等於所要檢索的位元組或字元數。
說明
使用Field對象的GetChunk方法檢索其部分或全部長二進制或字元數據。
在系統內存有限的情況下,可使用GetChunk方法處理部分而非全部的長整型
值。
GetChunk調用返回的數據將賦給「變數」。如果Size大於剩餘的數據,則
GetChunk僅返回剩餘的數據而無需用空白填充「變數」。如果欄位為空,則
GetChunk方法返回Null。
每個後續的GetChunk調用將檢索從前一次GetChunk調用停止處開始的數
據。但是,如果從一個欄位檢索數據然後在當前記錄中設置或讀取另一個欄位
的值,ADO將認為已從第一個欄位中檢索出數據。如果在第一個欄位上再次調
用GetChunk方法,ADO將把調用解釋為新的GetChunk操作並從記錄的起始
處開始讀取。如果其他Recordset對象不是首個Recordset對象的副本,則
訪問其中的欄位不會破壞GetChunk操作。
如果Field對象的Attributes屬性中的adFldLong位設置為True,則可
以對該欄位使用GetChunk方法。
如果在Field對象上使用Getchunk方法時沒有當前記錄,將產生錯誤3021
(無當前記錄)。
三、設計資料庫,作為測試的資料庫結構如下(Access97):
欄位名稱類型描述
id自動編號主鍵值
imgOLE對象用來保存圖片數據
對於在MSSQLServer7中,對應的結構如下:
欄位名稱類型描述
idint(Identity)主鍵值
imgimage用來保存圖片數據
四、正式編寫純ASP代碼上傳部分了,首先,有一個提供給用戶的上傳界面,可以讓用戶選擇要上傳的圖片。代碼如下(upload.htm):
<html>
<body>
<center>
<formname="mainForm"enctype="multipart/form-data"
action="process.asp"method=post>
<inputtype=filename=mefile><br>
<inputtype=submitname=okvalue="OK">
</form>
</center>
</body>
</html>
注意代碼中黑色斜體的部分,一定要在Form中有這個屬性,否則,將無
法得到上傳上來的數據。
五、接下來,要在process.asp中對從瀏覽器中獲取的數據進行必要的處理,因為在process.asp中獲取到的數據不僅僅包含了想要的上傳上來的圖片的數據,也包含了其他的無用的信息,需要剔除冗餘數據,並將處理過的圖片數據保存到資料庫中,這里以Access97為例。具體代碼如下(process.asp):
<%
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13)&chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)setconnGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={MicrosoftAccessDriver(*.mdb)};DBQ="&
server.MapPath("images.mdb")&";uid=;PWD=;"
connGraph.Opensetrec=server.createobject("ADODB.recordset")
rec.Open"SELECT*FROM[images]whereidisnull",connGraph,1,3
rec.addnew
rec("img").appendchunkmydata
rec.update
rec.close
setrec=nothing
setconnGraph=nothing
%>
六、這樣就把上傳來的圖片保存到了名為images.mdb的資料庫中了,剩下的工作就是要將資料庫中的圖片數據顯示到網頁上面了。
一般在HTML中,顯示圖片都是使用<IMG>標簽,也就是<IMGSRC="圖片路徑">,但是圖片是保存到了資料庫中,「圖片路徑」是什麼呢?呵呵,其實這個SRC屬性除了指定路徑外,也可以這樣使用哦:
<IMGSRC="showimg.asp?id=xxx">
所以,要做的就是在showimg.asp中從資料庫中讀出來符合條件的數據,並返回到SRC屬性中就可以了,具體代碼如下(showimg.asp):
<%
setconnGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={MicrosoftAccessDriver(*.mdb)};DBQ="&
server.MapPath("images.mdb")&";uid=;PWD=;"
connGraph.Open
setrec=server.createobject("ADODB.recordset")
strsql="selectimgfromimageswhereid="&trim(request("id"))
rec.openstrsql,connGraph,1,1
Response.ContentType="image/*"
Response.BinaryWriterec("img").getChunk(7500000)
rec.close
setrec=nothing
setconnGraph=nothing
%>
七、注意在輸出到瀏覽器之前一定要指Response.ContentType="image/*",以便正常顯示圖片。最後要注意的地方是,我的process.asp中作的處理沒有考慮到第一頁(upload.htm)中還有其他數據,比如<INPUTtype=tesxtname=userid>等等,如果有這些項目,process.asp就要注意處理掉不必要的數據。