我正在尝试使用 Visual Studio 2010 在 mysql 数据库表中添加一行,到目前为止我还没有遇到问题。我不断收到错误:
"Fatal error encountered during command execution."
表结构:
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 夏普查询:
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();
最佳答案
您的代码不完整,或者您当前正在执行查询之后添加查询参数 - 您必须在查询执行之前执行此操作。
此外,您甚至没有使用 image
变量 - 您正在使用您尚未显示的 putImage
。第三,您不应该使用 ExecuteReader()
- 这仅用于检索,但您正在执行插入操作,因此您需要 ExecuteNonQuery()
。
总之:要么您存在大量复制和粘贴错误,要么您的示例未反射(reflect)您的真实代码。
关于c# - 当我使用带参数的 Insert Into 语句时出现 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7053635/