我正在尝试使用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();
答案 0 :(得分:1)
您的代码不完整或者您当前正在>>执行查询后添加查询参数 - 您必须在查询执行之前执行此操作。
此外,您甚至没有使用image
变量 - 您正在使用未显示的putImage
。第三,您不应该使用ExecuteReader()
- 这仅用于检索,但您正在进行插入,因为您需要ExecuteNonQuery()
。
总结:要么你有很多副本和粘贴错误或您的示例不反映您的真实代码。