When I run the following code:
query = "select count(*) from table where name = '?name'";
MySqlConnection connection =
new MySqlConnection(ConfigurationManager.ConnectionStrings["mydb"].ToString());
connection.Open();
MySqlCommand command = new MySqlCommand(query,connection);
command.Parameters.Add("?name", name);
Int32 number = command.ExecuteScalar();
number is always zero, even when cast to an int.
I have tried converting it to int64, no dice. I have tried command.Prepare(). I have tried using Convert.ToInt32() and every other variation. I have tried just about everything under the sun including quoting verbatim what this suggests and I get no dice. Trying to cast the object as an integer, as a long, as an int32, none of this seems to work. These results are always 0 or cause a MySQL error.
EDIT: Stack overflow will not format that code properly in code tags, i apologize
The reason for that is because the parameter is enclose with single quote thus making it a string. Remove it and it will work,
for better code,
usingfor proper object disposaltry-catchblock for proper handling of exceptionscode snippet,