在MySQL中保存大型图像时遇到问题

在MySQL中保存大型图像时遇到问题,mysql,vb.net,image,Mysql,Vb.net,Image,我有很多超过1MB的图片需要保存在MySQL中。有时它可以更新1 mb大小的图像,但有时甚至无法保存500 kb的图像 我已经在MySQL Server 5.0的my.ini文件中将max_allowed_数据包更改为32M 这是我保存图像的代码。我做错什么了吗 Try Dim FileSize As UInt32 Dim mstream As New System.IO.MemoryStream()

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

我已经在MySQL Server 5.0的my.ini文件中将max_allowed_数据包更改为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
我只需要补充一下

SET GLOBAL max_allowed_packet=32*1024*1024

如果您遇到任何异常,请发布异常详细信息。将图像存储在这样的数据库中是一种反模式。是否有理由必须将其存储在数据库中?常见的数据库模式是将映像数据存储在文件系统(通常是具有复制、备份等功能的文件系统)中,并在数据库中简单地记录对它的引用(例如路径)。我在尝试保存大尺寸的映像时出错。但有时,可以保存相同大小的图像。“大于max_allowed_packet的数据包是不允许的”我所说的图像是将显示给用户的地图。我需要将这些图像保存在数据库中,这样,如果地图发生变化,管理员可以在不需要编辑代码的情况下对其进行更改。在一些错误的地方,请不要使用(参见备注)。缓冲区将始终大于实际图像大小-有时是两倍。使用
.ToArray()
,但文件系统中存储的映像比数据库中存储为字节的映像更易于编辑。您还需要处理正在创建的DB对象,否则您将耗尽资源。如果您遇到任何异常,请参阅发布异常详细信息。将图像存储在这样的数据库中是一种反模式。是否有理由必须将其存储在数据库中?常见的数据库模式是将映像数据存储在文件系统(通常是具有复制、备份等功能的文件系统)中,并在数据库中简单地记录对它的引用(例如路径)。我在尝试保存大尺寸的映像时出错。但有时,可以保存相同大小的图像。“大于max_allowed_packet的数据包是不允许的”我所说的图像是将显示给用户的地图。我需要将这些图像保存在数据库中,这样,如果地图发生变化,管理员可以在不需要编辑代码的情况下对其进行更改。在一些错误的地方,请不要使用(参见备注)。缓冲区将始终大于实际图像大小-有时是两倍。使用
.ToArray()
,但文件系统中存储的映像比数据库中存储为字节的映像更易于编辑。您还需要处理正在创建的DB对象,否则您将耗尽资源。查看评论中是否给出了答案,您可能应该要求评论者先发布答案,如果他们没有发布答案,则自己将答案发布为社区维基。如果评论中给出了答案,您可能应该要求评论者先发布答案,如果他们没有发布答案,则自己将答案发布为社区维基。