Проблема, скорее всего, связана с объявлением вашего параметра.
Попробуйте изменить следующие строки:
myCommand.CommandText = "SELECT MAX(IDNomina) FROM Nomina WHERE left(cast(`IDEmpleado` as char(10)), 8) = ?IDNomina"
myCommand.Parameters.AddWithValue("?IDNomina", IDNomina)
на:
myCommand.CommandText = "SELECT MAX(IDNomina) FROM Nomina WHERE left(cast('IDEmpleado' as char(10)), 8) = @IDNomina"
myCommand.Parameters.AddWithValue("@IDNomina", IDNomina)
Кроме того, добавьте обработчик try / catch, чтобы вы могли видеть, какие дополнительные ошибки,если таковые имеются, сообщается.
Обновление
Благодаря ссылке , предоставленной Miika L , выше будетработает только для версий, предшествующих MySQL 5.0, если только old syntax=yes
не добавлено в строку подключения.Если вы используете версию до 5.0, это синтаксис, который вам нужно будет использовать;в противном случае ваш исходный синтаксис правильный, и у вас есть проблема в другом месте кода.
Одна вещь, на которую следует обратить внимание: кавычки вокруг IDEmpleado могут вызывать проблемы, но вам нужно точно определить, где и какая ошибкапроисходит.