Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

проблема исполнения ExecuteScalar();

57K
19 апреля 2010 года
DjShumer
6 / / 19.04.2010
Меняю базу данных с Access на MySql в клиентском приложении. Использую Connector/Net 6.2.3 (то есть ADO.net) естественно язык C#
Ошибка
An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll

Additional information: Fatal error encountered during command execution.

в следующем коде
MySqlConnection connect = new MySqlConnection(Params.connStr);
connect.Open();
MySqlCommand comm = connect.CreateCommand();

comm.CommandText = "select count(*) from results where compdiscid=@cdid and memid=@mem";

comm.Parameters.Add("@cdid", MySqlDbType.Int32).Value = ((Para)cbDisciplineResult.SelectedItem).ID;
comm.Parameters.Add("@memid", MySqlDbType.Int32).Value = currentID;

object result = comm.ExecuteScalar(); //место ошибки
int cnt = 0; ;
if (result != null)
{
cnt = Convert.ToInt32(result);

}

причем если параметры занести в sql запрос напрямую то проблемы не будут
пример comm.CommandText = "select count(*) from results where compdiscid=" + ((Para)cbDisciplineResult.SelectedItem).ID + " and memid=" + currentID;

Хотел разобраться в чем дело, потому как переписывать таким способом все запросы накладно будет.

Жду ваших мыслей.
51K
25 апреля 2010 года
Airhand
19 / / 14.09.2009
Попробуй другой запрос: без агрегатов, т.е. простой select.
279
07 июля 2010 года
bave
456 / / 07.03.2004
попробуйте параметры создать так:

 
Код:
comm.Parameters.Add("@cdid", MySqlDbType.Int32);
comm.Parameters.Add("@memid", MySqlDbType.Int32);

comm.Parameters["@cdid"].Value = ((Para)cbDisciplineResult.SelectedItem).ID;
comm.Parameters["@memid"].Value = currentID;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог