Лучший способ хранить запросы вне программы в C # - PullRequest
0 голосов
/ 25 августа 2011

У меня есть несколько строк подключения и запросов, которые мне нужно сохранить вне моей программы на C # (не могу жестко их кодировать).Прямо сейчас я использую файл конфигурации приложения Visual Studio.К сожалению, для выполнения запросов требуются переменные (выбранные пользователем во время выполнения) из моей программы.

Мой текущий обходной путь - разбить запрос на части в файле конфигурации и собрать их внутри программы.Я бы предпочел избежать этого, так как это затрудняет чтение запроса из файла конфигурации.У кого-нибудь есть более элегантное решение?

Ответы [ 3 ]

6 голосов
/ 25 августа 2011

Хранимые процедуры на сервере, которые принимают параметры, будут моими предпочтениями.Это довольно хорошо защищает вас от sql-инъекций (если вы неправильно их конструируете) и является общепринятой практикой.

В противном случае используйте параметризованные запросы.Они могут быть сохранены в файле конфигурации.(Но я был бы уверен, что зашифрует файл .config , если вы продолжите хранить конфиденциальные данные, такие как строки подключения, и полезные вещи, такие как выполнимые запросы, в текстовом конфигурационном файле.)

1 голос
/ 25 августа 2011

Если вы должны иметь строки из вашей программы и не можете использовать хранимые процедуры, самый простой способ - сохранить строку с уже имеющимися параметрами, как-то так:

выберите * из страны, где city = @City "

Загрузите эту строку и добавьте параметр в свой запрос. Всегда используйте параметры при генерации запроса.

Этоэто простой, понятный и более нативный SQL-подход, который приходит мне на ум в вашем случае.

Надеюсь, это поможет.

1 голос
/ 25 августа 2011

Обычным подходом будет использование заполнителей и их замена во время выполнения.

...