[英]Fatal error encountered during command execution with a mySQL INSERT
我正在嘗試在 C# 中的 mySQL DB 上執行 INSERT 語句:
MySqlConnection connection = new MySqlConnection("SERVER=" + _dbConnection + ";" +
"DATABASE=" + _dbName + ";" +
"PORT=" + _dbPort + ";" +
"UID=" + _dbUsername + ";" +
"PASSWORD=" + _dbPassword + ";");
MySqlDataAdapter adapter;
DataSet dataset = new DataSet();
command = new MySqlCommand();
command.Connection = connection;
command.CommandText = "INSERT INTO plugins (pluginName, enabled) VALUES (@plugin,@enabled)";
command.Parameters.AddWithValue("@name", "pluginName");
command.Parameters.AddWithValue("@enabled", false);
adapter = new MySqlDataAdapter(command);
adapter.Fill(dataset);
插件表由兩列組成:pluginName(varchar(50)) 和 enabled(boolean)。
這失敗並出現錯誤:命令執行期間遇到 mysql 致命錯誤。 關於為什么這會失敗的任何想法?
您似乎在查詢中使用了@plugin
,但在參數中使用了@name
,盡管如果這是唯一的問題,我希望得到更好的錯誤消息!
錯誤“在命令執行期間遇到的致命錯誤”似乎是針對 CommandText 行中的一般語法錯誤。
例如,以下只是讓我絆倒了一段時間:
...@date,@email@first,@last...
注意那些逗號! @email
之后應該有一個:
...@date,@email,@first,@last...
缺少參數也可能是一個原因。 例如:
cmd.CommandText = "INSERT INTO login VALUES(@uname,@pwd);"
cmd.Parameters.AddWithValue("@uname",TxtUsername.Text.ToString())
'forgot to place "@pwd"
cmd.ExecuteNonQuery()
您會遇到致命錯誤,可以通過添加來解決
cmd.Parameters.AddWithValue("@pwd",TxtPassword.Text.ToString())
`(from user in _context.GetDataTable("call sp_get_user_subscribe_info(@param1, @param2)", _context.AddParameter(new dynamic[] { id }))`
我的程序有兩個參數,但我只傳遞了一個參數,這就是引發此錯誤消息的原因,但是此錯誤消息令人困惑
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.