Преобразование SQL в C # - PullRequest
1 голос
/ 16 мая 2011

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

Это выглядит примерно так (не берите в кавычки):

 SET @sql = '(((1.00 < col_a) 
     AND (col_a < 5.00))) 
     AND NOT LEFT(col_b, 4) IN ('something') 
     OR ( CHARINDEX('cucu', col_c) > 0 ) 
     AND NOT ISNULL(col_d, '') <> '' 
     AND ((1.00 < CONVERT(FLOAT, col_e)) 
     AND (CONVERT(FLOAT, col_f)< 5.00)) 
     AND NOT col_g IN ('10') '

Все работает нормально, жалоб нет, но клиент хотел бы использовать кодовый подход, я не совсем уверен, почему. Поэтому вместо того, чтобы использовать запланированное задание SQL и запускать мою хранимую процедуру, я полагаю, что все это будет каким-то образом перестроено в настольном приложении C #, которое делает то же самое.

Я хотел бы знать, есть ли способ для меня использовать мой код (как мой пример @sql выше) из C #. Я имею в виду какую-то компиляцию или что-то в этом роде.

Я подумал, что просто выберу результаты в DataTable, и ТО затем применил мой @sql поверх этого DataTable. Я хотел бы сузить результаты исходного DataTable, используя предложение where.

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

Я использую SQL 2k5, клиент имеет sql 2k8 (скоро мы будем обновляться) и настольное приложение, которое я создам на C #.

1 Ответ

3 голосов
/ 16 мая 2011

Не выполняете ли вы какие-либо проки базы данных из C # в настоящее время?

Это невероятно легко сделать. Храните код SQL в процедуре и выполняйте его с помощью классов SQL в .NET:

http://www.csharp -station.com / Учебники / AdoDotNet / Lesson07.aspx

...