c# - 将图像插入数据库时​​出错 c#

标签 c# mysql

错误 [HY000] [MySQL][ODBC5.3(a) Driver][mysqlId-5.7.11] 列 'Images' 不能为空。(这是我的问题)

这是我的插入按钮代码

OdbcConnection connection = new OdbcConnection("dsn=dsn_pos");
        MessageBox.Show(this.imagePath.Text);
        FileStream filestreme = new FileStream(imagePath.Text,System.IO.FileMode.Open,System.IO.FileAccess.Read);
        byte[] image = new byte[filestreme.Length];
        filestreme.Read(image, 0, Convert.ToInt32(filestreme.Length));
        filestreme.Close();




        connection.Open();
        string query = "INSERT INTO item_inventory (Images) VALUES (?)";
        OdbcCommand cmd = new OdbcCommand(query, connection);
        OdbcParameter prm = new OdbcParameter("@IMG",OdbcType.Binary,image.Length,ParameterDirection.Input,false,0,0,null,DataRowVersion.Current,image);
        cmd.Parameters.Add(prm);
        cmd.ExecuteNonQuery();
        connection.Close();

这是我的加载按钮代码

 OpenFileDialog dialog = new OpenFileDialog();
        dialog.Filter = "png files(*.png)|*.png|jpg files(*.jpg)|*.jpg|All files(*.*)|*.*";
        if (dialog.ShowDialog() == DialogResult.OK)
        {
            string picPath = dialog.FileName.ToString();
            imagePath.Text = picPath;
            pictureBox2.ImageLocation = picPath;
        }

最佳答案

mysql 驱动程序以其他方式工作,它不支持命名参数,仅支持 orderd。您需要将查询中的@IMG 更改为?。 担心您查询应该是这样的:

INSERT INTO item_inventory (Images) VALUES (?)

关于c# - 将图像插入数据库时​​出错 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48137283/

相关文章:

c# - Visual Studio 无法在设计模式下加载 native dll

php - 使用超链接发送数据库中使用的变量,以使用 get 命令回显结果

mysql - 查询优化

c# - WPF:FlowDirection.RightToLeft 如何更改字符串?

c# - MDbg - 调试器的协议(protocol)与被调试器不兼容

mysql - SQLSTATE[22007] : Invalid datetime format: 1292 Incorrect datetime value: '2008-03-30 02:56:12'

mysql - 获取mysql中所有值的总和

MYSQL:创建表中的索引关键字以及何时使用它

c# - 为什么 C# 中的整数除法返回整数而不是 float ?

c# - .netcore PUT 方法 405 方法不允许