[英]Field name does not have a default value
我正在嘗試在competition
表中插入具有以下結構的記錄:
CREATE TABLE IF NOT EXISTS `mydb`.`competition` (
`id` INT NOT NULL,
`country_id` INT NULL,
`name` VARCHAR(255) NOT NULL,
`link` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`),
INDEX `id_idx` (`country_id` ASC),
CONSTRAINT `FK_country_competition_country_id`
FOREIGN KEY (`country_id`)
REFERENCES `mydb`.`country` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
我的代碼有以下設計:
using (MySqlConnection connection = new DBConnection().Connect())
{
using (MySqlCommand command = new MySqlCommand())
{
command.Connection = connection;
command.CommandText = "INSERT INTO competition (id, country_id, name, link) " +
"VALUES (@id, @country_id, @name, @link)";
command.Parameters.AddWithValue("@id", 840);
command.Parameters.AddWithValue("@country_id", 2);
command.Parameters.AddWithValue("@name", "Superliga");
command.Parameters.AddWithValue("@link", "https://int.soccerway.com/national/albania/super-league/20172018/regular-season/r42054/");
command.ExecuteNonQuery();
}
}
當代碼到達這一行時: command.ExecuteNonQuery();
我明白了:
發生異常:CLR / MySQL.Data.MySqlClient.MySqlException MySQL.Data.dll中出現類型'MySQL.Data.MysqlClient.MySqlException'的異常,但未在用戶代碼中處理:'field'name'沒有默認值'。
現在competition
表的字段name
被設置為NOT NULL
因此它沒有默認值,但是我向命令傳遞了一個正確的值,所以我不明白為什么會顯示這個錯誤,任何想法?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.