Пожалуйста, посмотрите на следующий кодParameters.Add() не работает в случае запросов, связанных с «если существует» заявление, в C#
string SearchQuery = @"if exists (select * from table where colName = @colNameVal) select 1 else select 0";
AseConnection connection = new AseConnection();
connection.ConnectionString = connectionString;
connection.Open();
try
{
AseCommand selectCommand = new AseCommand(SearchQuery, connection);
selectCommand.Parameters.Add(new AseParameter("@colNameVal", AseDbType.NVarChar, 13)).Value = "123";
int doesValExist = (int)selectCommand.ExecuteScalar();
}
catch(Exception ex)
{
}
Я использую Sybase.AdoNet4.AseClient. Вышеупомянутый код бросает AseException со следующим сообщением
«Должен объявить переменную» @colNameVal ».
Но следующий запрос работает select * from table where colName = @colNameVal
.
Так что я предполагаю, что есть некоторая проблема с добавлением параметров в случае, если существует инструкция. Есть ли какая-нибудь работа для прохождения параметров?
установка Try: selectCommand.CommandType = CommandType.Text –
Вы пробовали 'Parameters.AddWithValue' – ninja
попробовал оба ваши предложения, не работает. Получение такой же ошибки. –