Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как реализовать условие в C# на стадии SQL запроса? / 5 сообщений из 5, страница 1 из 1
19.05.2014, 11:57
    #38644995
SNenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать условие в C# на стадии SQL запроса?
Здраствуйте.

Есть запрос в таблицу ексель.

Код: c#
1.
2.
3.
4.
5.
6.
DataTable dt;
String connectionString = @"Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\om.xls;Extended Properties=Excel 8.0";

query = @" SELECT [a].[f1], [a].[f2] FROM  [COMPLETED$] a";

dt = ExcelWorksheetToDataTable(query, connectionString);



В зависимости от значений полей [f1] и [f2] , поле [Status] получает: Cancelled, Created, Implemented, Pending или Received .

Это Можна сделать методом перебора строк в DataTable dt ;

Но, хотелось бы получить готовый результат уже на стадии исполнения sql.

Был бы это SQLServer, создал бы и использовал в нем свою функцию getStatus(param1, param2) :

Код: sql
1.
2.
SELECT [a].[f1], [a].[f2], getStatus([a].f1, [a].[f2]) as [Status]
FROM  [COMPLETED$] a;



Как реализовать условие в C# на стадии SQL запроса?

Спасибо за внимание!
...
Рейтинг: 0 / 0
19.05.2014, 17:17
    #38645501
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать условие в C# на стадии SQL запроса?
SNenko,

Ничего не понял
...
Рейтинг: 0 / 0
19.05.2014, 17:45
    #38645546
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать условие в C# на стадии SQL запроса?
Зависит от драйвера. Не уверен, что Jet для Excel поддерживает синтаксис CASE WHEN THEN ELSE END.
Если бы речь шла не о DataTable, можно было бы посоветовать LINQ. А в вашем случае - вычисляемый столбец в DataTable должен решить проблему.
...
Рейтинг: 0 / 0
19.05.2014, 18:02
    #38645573
SNenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать условие в C# на стадии SQL запроса?
Arm79Зависит от драйвера. Не уверен, что Jet для Excel поддерживает синтаксис CASE WHEN THEN ELSE END.
Если бы речь шла не о DataTable, можно было бы посоветовать LINQ. А в вашем случае - вычисляемый столбец в DataTable должен решить проблему.

Arm79,

Я тоже так думаю.
Но решил уточнить..

Пака работаю через с#:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
        public static DataTable getProcessing(DataTable dt, string statusDefault = "")
        {
            dt = deleteHead(dt);
            dt = renameColumns(dt);
            dt = status(dt, statusDefault);

            return dt;
        }
...
Рейтинг: 0 / 0
19.05.2014, 18:02
    #38645574
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать условие в C# на стадии SQL запроса?
Arm79Не уверен, что Jet для Excel поддерживает синтаксис CASE WHEN THEN ELSE END.если нет, то поддерживает IIF
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как реализовать условие в C# на стадии SQL запроса? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]