SmartDeveloping Ответов: 1

Выполнение запроса на основе переданных переменных


Я читаю два разных текстовых файла, один файл считывает идентификатор транзакции и запускает запрос ниже, чтобы соответствовать записи текстового файла. Другой текстовый файл проверяет идентификатор клиента и выполняет тот же запрос. Что мне нужно сделать, так это построить, может быть, stringbuilder? Поэтому, когда он запускает текстовый файл транзакции, он исключает "CustomerID IS NOT NULL" из предложения where.

Что я уже пробовал:

private DataRowCollection ExtractData(DateTime DailyFileDate)
       {
           Log.Info("Querying Microbilt data...");

           string sql = string.Empty;

           {
           sql = @"
                           SELECT
                               TransID,
                               CustomerID,
                               RID,
                               FileDate
                           FROM
                           (
                               SELECT TransID AS TransID,
                               CustomerID,
                               RID,
                               FileDate,
                               ROW_NUMBER() OVER(PARTITION BY TransID ORDER BY TransID DESC) AS RN
                               FROM MicroBilt.dbo.TransIDIgnoreAudit
                               WHERE FileDate BETWEEN @FileDate AND DATEADD(D,1, @FileDate AND CustomerID IS NOT NULL
                           ) A
                           WHERE RN = 1";

[no name]

Вероятно, вам было бы лучше написать хранимую процедуру.

SmartDeveloping

Нет, потому что это загружается в словарь.

Maciej Los

:смеяться:
Хранимая процедура возвращает данные, которые можно загрузить в объект словаря.
Ваш логин: SmartDeveloping, поэтому вы должны быть умны, чтобы разработать свое приложение.

[no name]

Какое это имеет отношение к делу?

Bryian Tan

я думаю, что в коде отсутствует закрывающий тег) в DATEADD (D,1, @FileDate-должно быть DATEADD(D, 1, @FileDate) и ... ?

1 Ответов

Рейтинг:
2

Maciej Los

Как NotPoliticallyCorrect[^] уже упоминалось, что вы должны использование хранимых процедур)[^].
Видеть: Пошаговое Руководство: Использование Только Хранимых Процедур (C#)[^]

Между прочим...
Вы можете загружать данные непосредственно из текстового файла в объект DataTable[^] использование объекта ADO.NET[^].
Видеть:
Много шума из-за текстовых файлов[^]
Схемы.ini-файл (текстовый файл драйвера ) | Майкрософт Документы[^]

Проверьте мой прошлый ответ: Чтение Определенных Столбцов Текстового Файла[^]