将图像保存到mysql数据库时出现问题。程序运行正常,没有错误 导入MySql.Data.MySqlClient 导入System.IO 公开课表格1 Dim连接作为新的MySqlConnection(“server=Localhost;userid=root;password=root;database=image”) 私有子表单1_Load(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load 端接头 私有子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击 Dim opf作为新OpenFileDialog opf.Filter=“选择图像(*.JPF;*.PNG;*.GIF)|*.jpg;*.PNG;*.GIF” 如果opf.ShowDialog=Windows.Forms.DialogResult.OK,则 PictureBox1.Image=Image.FromFile(opf.FileName) 如果结束 端接头 私有子按钮2\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮2。单击 Dim命令作为新的MySqlCommand(“插入到saveimage(image)值(@img)”,连接) 将ms变暗为新内存流 PictureBox1.Image.Save(ms,PictureBox1.Image.RawFormat) command.Parameters.AddWithValue(“@img”,SqlDbType.Image).Value=ms.ToArray() connection.Open() MessageBox.Show(“插入图像”) 端接头 末级

将图像保存到mysql数据库时出现问题。程序运行正常,没有错误 导入MySql.Data.MySqlClient 导入System.IO 公开课表格1 Dim连接作为新的MySqlConnection(“server=Localhost;userid=root;password=root;database=image”) 私有子表单1_Load(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load 端接头 私有子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击 Dim opf作为新OpenFileDialog opf.Filter=“选择图像(*.JPF;*.PNG;*.GIF)|*.jpg;*.PNG;*.GIF” 如果opf.ShowDialog=Windows.Forms.DialogResult.OK,则 PictureBox1.Image=Image.FromFile(opf.FileName) 如果结束 端接头 私有子按钮2\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮2。单击 Dim命令作为新的MySqlCommand(“插入到saveimage(image)值(@img)”,连接) 将ms变暗为新内存流 PictureBox1.Image.Save(ms,PictureBox1.Image.RawFormat) command.Parameters.AddWithValue(“@img”,SqlDbType.Image).Value=ms.ToArray() connection.Open() MessageBox.Show(“插入图像”) 端接头 末级,mysql,sql,vb.net,Mysql,Sql,Vb.net,这是错误的: command.Parameters.AddWithValue(“@img”,SqlDbType.Image).Value=ms.ToArray() 您正在混合和匹配两种不同的添加参数的方法。如果调用AddWithValue(通常不应该这样做),则需要提供值,而不是类型。如果要指定类型,然后设置值,则调用添加 另外,SqlDBType用于SqlClient和sqlserver。如果您使用的是MySqlClient和MySQL,那么您需要使用MySqlDbType。这是一个完美的例

这是错误的:

command.Parameters.AddWithValue(“@img”,SqlDbType.Image).Value=ms.ToArray()
您正在混合和匹配两种不同的添加参数的方法。如果调用
AddWithValue
(通常不应该这样做),则需要提供值,而不是类型。如果要指定类型,然后设置
,则调用
添加

另外,
SqlDBType
用于
SqlClient
和sqlserver。如果您使用的是
MySqlClient
和MySQL,那么您需要使用
MySqlDbType
。这是一个完美的例子,说明了为什么您需要对选项进行严格限制

您的代码应该是这样的:

command.Parameters.Add(“@img”,MySqlDbType.Blob).Value=ms.ToArray()

我之所以说“类似于此”,是因为您指定的类型取决于您在数据库中使用的实际数据类型。如果需要使用
VarBinary
,则还应指定大小。

它是否将@img识别为字符串?表定义是什么?当你取回它时会发生什么?如果它运行得很好,你就不会问我想问的问题了。作为将来的参考,标题和代码永远都不是一个足够的问题。标题应概括问题,然后问题应提供问题的完整和明确解释,其中必须包括相关代码,但不得限于此。如帮助中心所述,如果你懒得发布一个适当的问题,你可能会发现人们懒得回答你的问题,他们很快就会被关闭。