一、使用ODBCADAPTER進行更新,須要加入Dim db As New Odbc.OdbcCommandBuilder(ada)ui
1 dim myfilestream As New System.IO.FileStream(filename, IO.FileMode.Open) 2 Dim data(myfilestream.Length) As Byte 3 4 myfilestream.Read(data, 0, myfilestream.Length) 5 myfilestream.Close() 6 7 Dim ada As Odbc.OdbcDataAdapter 8 Dim rs As New DataTable 9 Dim c_str As String 10 c_str = "select * from *" 11 If connect.State <> ConnectionState.Open Then 12 connect.Open() 13 End If 14 ada = New Odbc.OdbcDataAdapter(c_str, connect) 15 ada.Fill(rs) 16 rs.Rows(0)("圖片") = data 17 '必須加入下一行進行更新 18 Dim db As New Odbc.OdbcCommandBuilder(ada) 19 ada.Update(rs) 20 ada.Dispose()
二、使用SQL語句儲存 spa
Dim c_str As String c_str = "update 製件信息 set 圖片=@data where *" Dim mycommand As New Odbc.OdbcCommand(c_str) mycommand.CommandType = CommandType.StoredProcedure mycommand.Connection = connect Dim p As New Odbc.OdbcParameter("@data", Odbc.OdbcType.Image) p.Value = data mycommand.Parameters.Add(p) If connect.State <> ConnectionState.Open Then connect.Open() End If Try mycommand.ExecuteNonQuery() Catch ex As Exception MsgBox("圖片寫人失敗" & vbNewLine & ex.Message) End Try
調試過程當中總出現無效的精度值錯誤,將代碼改成調試
Dim c_str As String c_str = "update 製件信息 set 圖片=? where *" Dim mycommand As New Odbc.OdbcCommand(c_str) mycommand.CommandType = CommandType.StoredProcedure mycommand.Connection = connect Dim p As New Odbc.OdbcParameter("@P1", Odbc.OdbcType.Image) p.Value = data mycommand.Parameters.Add(p) If connect.State <> ConnectionState.Open Then connect.Open() End If Try mycommand.ExecuteNonQuery() Catch ex As Exception MsgBox("圖片寫人失敗" & vbNewLine & ex.Message) End Try
順利經過調試。。。。。。。。。。。竟然要採用?這種古老的變量申明方式,完全無語code