4

I am trying to execute a INSERT statement on a mySQL DB in C#:

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);

The plugin table consists of two columns: pluginName(varchar(50)) and enabled(boolean).

This fails with the error: mysql Fatal error encountered during command execution. Any ideas on why this would fail?

4 Answers 4

8

You seem to be using @plugin in the query but @name in the parameters, although I'd expect a better error message if that was the sole problem!

Sign up to request clarification or add additional context in comments.

2 Comments

If you explore the Exception's InnerException (its exceptions all the way...) you eventually find the source of the problem; in my case, a non-defined parameter (typo).
I just had this same problem, the error message is not clear at all. But thank you for helping me fix it!
1

Missing Parameters could also be a reason. eg:

cmd.CommandText = "INSERT INTO login VALUES(@uname,@pwd);"
cmd.Parameters.AddWithValue("@uname",TxtUsername.Text.ToString())
'forgot to place "@pwd"

cmd.ExecuteNonQuery()

You get fatal error which can be solved by adding

cmd.Parameters.AddWithValue("@pwd",TxtPassword.Text.ToString())

Comments

0

The error "Fatal error encountered during command execution" seems to be for general syntax errors in the CommandText line.

For example, the following just tripped me up for a while:

...@date,@email@first,@last...

Watch out for those commas! There should be one after @email:

...@date,@email,@first,@last...

Comments

0
`(from user in _context.GetDataTable("call sp_get_user_subscribe_info(@param1, @param2)", _context.AddParameter(new dynamic[] { id }))`

My procedure has two parameters but I have passed only one parameter that's why this error message occurred, But this error message is so confusing.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.