【发布时间】:2016-11-11 01:07:32
【问题描述】:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
cn.Open()
Dim arrimage() As Byte
Dim ms As New MemoryStream()
If (pb1.Image IsNot Nothing) Then
pb1.Image.Save(ms, pb1.Image.RawFormat)
arrimage = ms.GetBuffer
ms.Close()
End If
With cmd
.Connection = cn
.CommandText = "INSERT INTO [Example]([PName],[Pic])VALUES(@a2,@a1)"
.Parameters.Add("a0", OleDbType.VarChar).Value = tName.Text
.Parameters.Add("a1", OleDbType.Binary).Value = IIf(pb1.Image IsNot Nothing, arrimage, DBNull.Value())
.Dispose()
.ExecuteNonQuery()
End With
cn.Close()
End Sub
【问题讨论】:
-
有几件事,首先你要在执行查询之前处理你的命令。您应该执行然后处置。
-
DBNull.Value()值是属性而不是方法 -
Using不是比.Close或.Dispose更惯用的选择吗? @Zaggler -
@ZevSpitz 当然是,它确保对象得到处理。目前,它永远不会按照 OP 当前的方式执行,这就是我的观点。
-
@Plutonix 知道我该怎么做吗?我正在尝试使用 vb.net 将图像保存在 msaccess 中
标签: vb.net