怎么用vb 把jpg的图片 保存到sql数据库中,?? 有简单的代码吗??
怎么用vb 把jpg的图片 保存到sql数据库中,?? 有简单的代码吗??
高手指点??
问题点数:0、回复次数:14Top
1 楼ljycn(不会游泳的鱼)回复于 2003-12-03 14:00:17 得分 0
把图片变成xml 文件
然后在存,我做过这样的Top
2 楼rzpc(淡蓝色)回复于 2003-12-03 14:00:52 得分 0
Dim objCN As SqlClient.SqlConnection = 你的连接对象
Dim objDS As New DataSet()
Dim objDA As New SqlClient.SqlDataAdapter("select top 0 * from desktop", objCN)
objDA.Fill(objDS, "T0")
Dim objNewRow As DataRow = objDS.Tables("T0").NewRow()
'添加文件至数据库
With objNewRow
.Item("bindata") = BinData '把图像的二进制数据赋值到数据表
End With
objDS.Tables(0).Rows.Add(objNewRow)
Dim objCB As New SqlClient.SqlCommandBuilder(objDA)
objDA.Update(objDS, "T0")
objCN.Close()
Top
3 楼listone(caibin)回复于 2003-12-03 19:13:40 得分 0
rzpc(淡蓝色) 老兄你给我的代码, 我用vb 不能调试 , 你指点 我一下
要不要 ,引用, 或加控件
listone 谢谢Top
4 楼listone(caibin)回复于 2003-12-03 19:16:07 得分 0
rzpc(淡蓝色) 你用的是 vb.net , 我问问 你用vb6.0 的代码有吗
listoneTop
5 楼listone(caibin)回复于 2003-12-03 19:17:21 得分 0
ljycn(网路吾量) 你的方法,我不太懂, 能说的详细一点吗
listone
Top
6 楼seawind119(脚下的地在走)回复于 2003-12-03 20:31:45 得分 0
学习Top
7 楼bucher(无人永生)回复于 2003-12-03 21:21:49 得分 0
VB6?走错路了吧?
VB6对于SQL的image字段需要采用recordset.field的appendchunk来写入。这个看看MSDN就可以知道了。对于图像的序列、反序列化。vb6可以采用propertybag来做,这样比较简单。Top
8 楼rzpc(淡蓝色)回复于 2003-12-03 22:51:06 得分 0
VB6的方法和VB.net的方法是一样的.
我告诉你的VB6的ADO的思想:就是用Recordset对象的Addnew方法.具体方法你自己查看参考资料吧.Top
9 楼listone(caibin)回复于 2003-12-06 01:43:55 得分 0
问 rzpc(淡蓝色)
VB6 我是很熟悉的, 我用了三年了, 做了好多企业的软件, ADO 我是很熟悉的,
只是你的代码 我没有发调试Top
10 楼listone(caibin)回复于 2003-12-06 01:46:47 得分 0
bucher(无人永生)
我用你的方法 试试看 , 谢谢指教Top
11 楼fafan(Hello World!)回复于 2003-12-06 09:18:31 得分 0
学习
feifanx2000@vip.sina.comTop
12 楼superhzq(Anthem.Hu)回复于 2003-12-06 22:31:16 得分 0
Dim DataFile As Integer, Fl As Long, Chunks As Integer, i As Integer
Dim Fragment As Integer, chunk() As Byte
Dim filename As String
Dim rsTest As ADODB.Recordset
Dim strCnn As String
Const ChunkSize As Integer = 16384
filename = App.Path & "\a.jpg"
DataFile = 11
Set rsTest = New ADODB.Recordset
rsTest.CursorType = adOpenKeyset
rsTest.LockType = adLockOptimistic
rsTest.Open "test", cnn1, , , adCmdTable
rsTest.AddNew
rsTest!id = 15
Open filename For Binary Access Read As DataFile
Fl = LOF(DataFile)
If Fl = 0 Then Close DataFile: Exit Sub
Chunks = Fl \ ChunkSize
Fragment = Fl Mod ChunkSize
ReDim chunk(Fragment)
Get DataFile, , chunk()
rsTest!body.AppendChunk chunk()
ReDim chunk(ChunkSize)
For i = 1 To Chunks
Get DataFile, , chunk()
rsTest!body.AppendChunk chunk()
Next i
Close DataFile
rsTest.Update
Top
13 楼listone(caibin)回复于 2003-12-25 19:31:04 得分 0
superhzq(搏浪) 你有没有 qq: 我的是2215079
你的代码我运行好了。谢谢你Top
14 楼earlsen(earlsen)回复于 2003-12-26 11:20:37 得分 0
我这个方法可以试一试,用到Forms中的picturebox控件。图片字段是image类型.
记得引用 system.data
这是用VB.NET写的,保存图片到数据库的函数。已经用了很久了,没出现问题。
Try
Dim picsql As String = "update products set orderimage=@orderimage where productno=@productno"
Dim piccmd As New SqlCommand(picsql, Cn) 'Cn 数据库连接 SQL2000的数据库
With piccmd
.Parameters.Add(New SqlParameter("@productno", SqlDbType.VarChar, 15)).Value() = Trim(txtOrderID.Text)
If Me.PicBox.Image Is Nothing Then ‘判断图片是否为空
.Parameters.Add(New SqlParameter("@orderimage", SqlDbType.Image)).Value = System.DBNull.Value
Else
Dim ms As New MemoryStream()
PicBox.Image.Save(ms, PicBox.Image.RawFormat.Jpeg)
Dim arrImage() As Byte = ms.GetBuffer
ms.Close()
.Parameters.Add(New SqlParameter("@orderimage", SqlDbType.Image)).Value = arrImage
End If
End With
If App.SQLDB.Cn.State = ConnectionState.Closed = True Then App.SQLDB.Cn.Open()
piccmd.ExecuteNonQuery()
MsgBox("图片操作成功!", MsgBoxStyle.Information)
Catch E As SqlException
MessageBox.Show(E.Message, E.Source, MessageBoxButtons.OK, MessageBoxIcon.Information)
SavePic = False
End Try
Top




