ACCESS数据库升级到SQL数据库(二) 图片的存储

 

1、使用ODBCADAPTER进行更新,需要加入Dim db As New Odbc.OdbcCommandBuilder(ada)

 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()

2、使用SQL语句储存       

        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

顺利通过调试。。。。。。。。。。。居然要采用?这种古老的变量申明方式,彻底无语

posted on 2013-10-21 12:11  lizarus  阅读(296)  评论(0)    收藏  举报