我想开发一个解决方案,在用户点击加载后将用户pic插入数据库。然后单击视图将显示存储在uid标识的用户的DB中的用户pic。
模块代码: http://pastebin.com/CTW3e0ez
表格代码: http://pastebin.com/W0CNUuJ1
问题是由于存在
rs.AddNew
rs.Fields("ID").Value = ID
rs.Fields("Description").Value = Description
rs.Fields("Picture").Value = strStream.Read
rs.Update
我不能将SQL 插入与 where 子句一起使用。
我的主要目的是允许用户更改他的个人资料图片。选择文件后,它将存储在数据库中,并显示在图标框中。
答案 0 :(得分:0)
你应该能够使用带有匿名参数的Command对象来完成这项工作,正如这个简单的开放例程中所定义的那样:
Public Sub OpenDB()
Set conDB = New ADODB.Connection
conDB.Open strConn
Set cmndUpdate = New ADODB.Command
With cmndUpdate
.Name = "Update"
.CommandType = adCmdText
.CommandText = "UPDATE [PicTable] " _
& "SET [Picture] = ? " _
& "WHERE [ID] = ?"
Set .ActiveConnection = conDB
End With
End Sub
稍后可以将其作为Connection的动态方法调用,如:
Private Sub cmdReplace_Click()
'We have an open Recordset (RS) to get the ID from. We use the
'current record's ID and update that record with a fixed photo
'file "photo 04.jpg" just for demonstration:
Dim PictureFileName As String
Dim PictureFile As Integer
Dim PictureBlob() As Byte
PictureFile = FreeFile(0)
Open "photos\photo 04.jpg" For Binary Access Read As #PictureFile
ReDim PictureBlob(LOF(PictureFile) - 1)
Get #PictureFile, , PictureBlob
Close #PictureFile
conDB.Update PictureBlob, RS!ID.Value
'Repaint our user interface by calling our ShowData subroutine,
'which displays data from the current record of RS:
ShowData
End Sub
我使用Jet MDB进行了快速而肮脏的测试,但是我没有理由认为这不适用于大多数旧版6.5左右的SQL Server版本。由于它不使用命名参数,因此它甚至可以与SQL Server Compact Edition一起使用。
有关更完整,可测试的示例,请参阅SQL Parameters Example。