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 + ";" +
"PASSWO开发者_运维问答RD=" + _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?
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!
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...
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())
`(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.
精彩评论