Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Базы данных под .NET > ExecuteNonQuery |
Автор: Atiskara 10.4.2009, 16:43 | ||||
при выполнении ExecuteNonQuery возникает исключительная ситуация Cannot convert int to tinyint.. Причем есть 2 базы на mssql, одна тестовая, другая боевая. В тестовой никаких ошибок не возникает. В боевой ошибка возникает у последних зарегенных юзеров, у ранних работает норм, точную временную границу между ними не могу сказать. Подскажите, хотя бы где искать ошибку, в базе или в коде? Код не мой, но баг надо найти мне. С шарпом знакома поверхностно, а шарп вс асп вижу вообще впервые. Или как нужно обработать исключение, чтобы значение возвращалось? наверно кусок кода мало что скажет
после обработки SP.ExecuteNonQuery() параметр (byte)SP.getParameter(1).Value не всегда получает значение...
|
Автор: archeg 10.4.2009, 16:51 |
До (byte)SP.getParameter(1).Value дебаггер не доходит? Если нет - то ошибка в базе. Покажи код процедуры. И если в одной есть ошибка - а в другой нету, то либо там процедуры разные, либо какие-то настройки. |
Автор: Idsa 10.4.2009, 16:52 |
Atiskara, посмотрите, какие типы у параметров хранимки и используйте аналогичные типы из .NET: тогда не будет проблем с приведением типов и пропаданием значений. |
Автор: Atiskara 10.4.2009, 16:58 | ||||||
когда я трай кетч убираю, то вот здесь возникает ошибка sqlCmd.ExecuteNonQuery();, ну а если с обработкой, то вот if((byte)SP.getParameter(1).Value == 0) Добавлено через 12 минут и 42 секунды
Хранимка это наверно процедура, где все это выполняется?
|
Автор: Idsa 10.4.2009, 17:23 |
Там нужно указать тип, сооветствующий типу, прописанному в хранимой процедуре в СУБД. |
Автор: archeg 10.4.2009, 17:23 |
Имелся ввиду код процедуры который на сервере ;) |
Автор: Atiskara 10.4.2009, 17:30 | ||
бррр.. а я не знаю, что с чем сравнивать ![]() Добавлено через 8 минут и 56 секунд
вообще непонятно, как этот Value для pr[1] получает значение... Для старых пользователей, это значение откуда то присваивается при выполнении ExecuteNonQuery, а для последних нигде не присваивается. |
Автор: Partizan 10.4.2009, 18:33 | ||
Нет...код процедуры хранится в самой СУБД.... |
Автор: Idsa 10.4.2009, 18:37 |
Я бы даже сказал, в самой БД ![]() |
Автор: Atiskara 13.4.2009, 06:40 | ||
ура, спасибо спасибо люди всем.. нашлась ошибка ![]()
действительно тип в этой строчке, и тип в базе отличались. Конечно осталось загадкой, почему иногда все работало, а иногда нет... |
Автор: Atiskara 13.4.2009, 07:06 |
ааа.. ![]() |