簡體   English   中英

在使用 mySQL INSERT 執行命令期間遇到致命錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM