我试图在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在命令执行期间遇到致命错误。关于为什么会失败的任何想法?
答案 0 :(得分:4)
您似乎在查询中使用@plugin
但在参数中使用@name
,但如果这是唯一的问题我会期待更好的错误消息!
答案 1 :(得分:0)
错误“在命令执行期间遇到致命错误”似乎是针对CommandText行中的一般语法错误。
例如,以下内容让我绊倒了一段时间:
...@date,@email@first,@last...
留意那些逗号! @email
之后应该有一个:
...@date,@email,@first,@last...
答案 2 :(得分:0)
缺少参数也可能是原因。 例如:
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())