使用mySQL INSERT执行命令时遇到致命错误

时间:2010-03-18 04:52:41

标签: c# mysql

我试图在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在命令执行期间遇到致命错误。关于为什么会失败的任何想法?

3 个答案:

答案 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())