Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Параметры в строке команды SQL


Автор: Stellar 26.10.2008, 23:41
Здравствуйте,

прошу помощи у знающих,

вот текст для SQL команды:

Код

private string checkSitePresence="SELECT COUNT (*) FROM (@tablename) WHERE (@columnname) = (@cellvalue)";


Во-первых, можно ли использовать несколько параметров в одной строке?

Идея такова, чтобы перед записью в таблицу, проверить не записано ли такое значение уже в базу, 
для этого на три параметра передаю соответствующие значения.

Работает это не корректно.

Если оставить только один параметр, как здесь:

Код

private string checkSitePresence="SELECT COUNT (*) FROM Site WHERE site_name = (@cellvalue)";


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

Итак, можно ли использовать несколько параметров в одном запросе? Где может быть ошибка здесь? smile 
Может есть больее совершенное решение данного примера?

Заранее благодарен,

Спасибо 





Автор: thomas 27.10.2008, 02:53
Stellar, 
Ты параметры SQL перепутал с переменными.
Выдели для названия таблицы и поля в ней пару переменных, а в самом запросе оставь SQL параметр.
Код

string mySite, myColumnName;
private string checkSitePresence="SELECT COUNT (*) FROM " & mySite & " WHERE " & myColumnName & " = (@cellvalue)";

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

Автор: Stellar 27.10.2008, 14:34
Спасибо за ответ,

дело в том, что строки хранятся в отдельном классе, все же можно ли использовать строку с тремя параметрами? Это было бы очень удобно

Я в этом совсем ещё "зелёный"  smile 

Автор: thomas 27.10.2008, 17:43
Stellar, 
ну так и пусть храняться.
Сделай конструктор класса с параметрами(название таблицы название столбца в ней).
И передавай эти параметры ему когда вызываешь класс.

Автор: Stellar 27.10.2008, 17:51
Пожалуй так и сделаю, спасибо smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)