mysql-workbench - 如何将绘图保存到mysql中?
问题描述
我有一种方法,用户可以在图片框上绘制他们想要的任何东西,但问题是我无法将绘图保存到 MySQL 中,当我尝试保存图片框时,只能保存其上的图像,但我应用的绘图在 PictureBox 上尚未保存。
这是我的保存按钮代码:
Private Sub btnsave_Click(sender As System.Object, e As System.EventArgs) Handles btnsave.Click
Dim mstream As New System.IO.MemoryStream()
pbtest.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim arrImage() As Byte = mstream.GetBuffer()
MysqlConn = New MySqlConnection
MysqlConn.ConnectionString =
"server=localhost;userid=root;password=rico;database=god;"
Try
MysqlConn.Open()
COMMAND.CommandText = "insert into god.precord (picture) values (@picture)"
COMMAND.Connection = MysqlConn
COMMAND.CommandType = CommandType.Text
COMMAND.Parameters.AddWithValue("@picture", arrImage)
COMMAND.ExecuteNonQuery()
MessageBox.Show("Data Saved")
MysqlConn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
MysqlConn.Dispose()
End Try
请帮助我,我坚持下去。
解决方案
如果您可以将在picturebox 上绘制的图像保存到本地磁盘,那么您可以这样做: 在您的SQL 表中,将picture 列的数据类型定义为varbinary (max)。例子:
Create table tblA (Picture varbinary (max));
Create proc uspInsertPictureA @Picture varbinary (max) as insert into tblA (Picture) values (@Picture);
然后,在您的 VB.Net 应用程序中,执行以下操作:
Command.Parameters.Add("@Picture", SqlDbType.VarBinary).Value = System.IO.File.ReadAllBytes(PictureBox1.ImageLocation) --> Change PictureBox1 to your PictureBox name
Command.ExecuteNonQuery
这会将您的图片框图像保存到您的 SQL 数据库中。然后,要将图片从 SQL Server 数据库中检索到 VB.Net 应用程序中,请执行以下操作:
Command.CommandText = "Select Picture from tblA"
Dim BLOB = DirectCast(Command.ExecuteScalar, Byte())
Dim Picture = New System.IO.MemoryStream
Picture.write(BLOB, 0, BLOB.Length)
PictureBox.Image = New Bitmap(Picture)
我希望这有帮助。但是,如果我可以建议,您最好将在图片框上绘制的图像保存到本地磁盘上,然后将文件位置而不是图片本身保存到 SQL Server 数据库中。将图片/图像保存到 SQL Server 数据库会增加资源消耗并可能导致性能问题,尤其是当您的应用程序在网络上运行或具有大型数据库时。
推荐阅读
- python - Python (Pandas) - 将堆积的机器数据移动到列中
- php - PHP:整理日期时间信息的方法?
- laravel - 检测肉眼可见图像中的独特颜色
- android - 按字符串类型检索按钮 ID 的名称
- javascript - 如何在反应和电子之间进行通信
- json - 您可以使用 Python 和 load_table_from_json() 将 JSON 格式的数据加载到 BigQuery 表吗?
- unity3d - Unity 2D 胸部玩家检测
- javascript - PHP不向JS发送变量
- javascript - 无法读取未定义的导入猫鼬脚本的属性“doc”
- javascript - 如何使用 pdfkit(节点 js)将多个图像转换为 pdf?