Я сталкиваюсь с очень интересной ошибкой (или функцией).ExecuteScalar возвращает другой результат, чем Pure SQL
У меня есть объект команды ADO, который вызывает вызов в базе данных.
Звонок похож на:
cmd.CommandText = "uspMySearch";
cmd.CommmandType = Command.StoredProcedure.
cmd.Parameters.AddWithValue("@SearchBy", searchBy)
// The value of searchBy is: '(FORMSOF (INFLECTIONAL, steve''s) AND FORMSOF (INFLECTIONAL, game))'
int result = (int)cmd.ExecuteScalar();
// The result returned is 0. I was expecting 1.
Когда я выполнить тот же запрос в SQL/в Query Analyzer, я получить другой результат.
СКП выглядит следующим образом:
EXEC uspMySearch @SearchBy = '(FORMSOF (INFLECTIONAL, steve''s) AND FORMSOF (INFLECTIONAL, game))'
// The result returned is 1. This is the expected result.
Для того, чтобы подтвердить, что я звонил правильно хранимую процедуру, я доработан uspMySearch возвращать случайное число. Я звонил вправо Sp!
У кого-нибудь есть идеи относительно того, что происходит здесь?
Спасибо.
Стив
Environment
SQL/Server 2008 R2
.NET 4.0
Перейти в SQL Profiler и посмотреть, что запрос выглядит следующим образом отправляется на SQL Server. –
Как выглядит ваш сохраненный proc? Похоже, вы динамически генерируете и выполняете SQL, правильно? – DoctorMick
Вы возвращаете 'SELECT 1/0' из процедуры? Или вы просто делаете «RETURN 1/0»? Вы не получите значение из метода 'RETURN'. – FlyingStreudel