当我使用带参数的Insert Into语句时出现致命错误

时间:2011-08-13 22:13:37

标签: c# mysql database image fatal-error

我正在尝试使用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$$

C Sharp查询:

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();

1 个答案:

答案 0 :(得分:1)

您的代码不完整或者您当前正在>执行查询后添加查询参数 - 您必须在查询执行之前执行此操作。

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

总结:要么你有很多副本和粘贴错误或您的示例不反映您的真实代码。