我有很多大于1 mb的图像,需要在MySQL中保存。有时它可以更新1 mb大小的图像,但有时甚至无法保存500 kb图像。

我已经在MySQL Server 5.0的my.ini文件中将max_allowed_pa​​cket更改为32M。

这是我保存图像的代码。我在这里做错了吗?

Try
                Dim FileSize As UInt32
                Dim mstream As New System.IO.MemoryStream()
                pic_box_save.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
                Dim arrImage() As Byte = mstream.GetBuffer()
                FileSize = mstream.Length
                mstream.Close()
                ' MsgBox(FileSize)

                MyConnection()
                Sql = "update AREA set AREA_NAME=@Aname, AREA_IMG=@image_data where AREA_NO='" & cboAreaNo.Text & "'"
                Dim cmd As New MySqlCommand(Sql, Con)
                cmd.Parameters.AddWithValue("@Aname", txtAreaname.Text)
                cmd.Parameters.AddWithValue("@image_data", arrImage)
                cmd.ExecuteNonQuery()
                MsgBox("Data successfully updated!!", vbInformation, "Updating")
                Con.Close()
            Catch ex As Exception
                MsgBox("Data not Saved!!!" + ex.Message, vbCritical, "System message")
            End Try

最佳答案

我只需要添加

SET GLOBAL max_allowed_packet=32*1024*1024

10-08 09:28