当我使用带有参数的Insert Into语句时,会得到一个致命错误

本文关键字:致命错误 一个 语句 参数 Into Insert | 更新日期: 2023-09-27 18:05:36

我试图使用visual studio 2010添加一行到mysql数据库表,直到现在我还没有遇到问题。我一直得到错误:

"执行命令时遇到致命错误。"

表结构:

delimiter $$
CREATE TABLE `magazine_images` (
  `image_id` int(11) NOT NULL AUTO_INCREMENT,
  `MagazineKey` int(5) DEFAULT NULL,
  `image_type` varchar(45) NOT NULL,
  `image` blob,
  `image_size` varchar(45) NOT NULL,
  `image_ctgy` varchar(45) NOT NULL,
  `image_name` varchar(50) NOT NULL,
  PRIMARY KEY (`image_id`),
  KEY `image_magazine` (`MagazineKey`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1$$
锐利查询:
string image = "INSERT INTO magazine_images (MagazineKey, image, image_type, image_size, image_ctgy, image_name) " +
                    "VALUES(@magkey, @image, @image_type, @image_size, @image_ctgy, @image_name)";
            this.cmd = new MySqlCommand(putImage, this.con);
            this.read = this.cmd.ExecuteReader();
            this.read.Read();
            this.cmd.Parameters.AddWithValue("@magkey", int.Parse(labelKey.Text));
            this.cmd.Parameters.AddWithValue("@image", textBoxImageFile.Text);
            this.cmd.Parameters.AddWithValue("@image_name", textBoxImageName.Text);
            this.cmd.Parameters.AddWithValue("@image_type", comboBoxImageType.Text);
            this.cmd.Parameters.AddWithValue("@image_ctgy", textBoxImageCategory.Text);
            this.cmd.Parameters.AddWithValue("@image_size", labelImageSize.Text);
            this.read.Close();

当我使用带有参数的Insert Into语句时,会得到一个致命错误

要么你的代码不完整,要么你正在执行查询之后添加查询参数 -你必须在查询执行之前完成。

您甚至没有使用image变量-您使用的是您没有显示的putImage。第三,您不应该使用ExecuteReader() -这仅用于检索,但您正在进行插入,因此您需要ExecuteNonQuery()

总结:要么你有很多副本&粘贴错误或示例不能反映实际代码