2009-05-13 3 views
2

У меня есть небольшая функция C#, которая принимает любой общий SQLDataReader и преобразует его в файл csv. Однако теперь мне нужно игнорировать 1 столбец от datareader, который попадает в него.Удалить столбец из datareader

Как удалить 1 столбец из SQLDataReader?

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

EDIT: Я думаю, что я был немного пропущен. Столбец, который я хочу удалить, используется в других случаях, просто не для этого. Так что просто удаление из запроса будет работать, но приведет к тому, что мне придется запускать запрос дважды, а не только один раз, и это более крупный запрос.

ответ

3

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

(я предполагаю, что здесь много, но перегрузка является ключевой бит)

public void MakeMyCSV(string MyFileName, SQLDataReader DataToOutput) 
{ 
    MakeMyCSV(MyFileName, DataToOutput, null); 
} 

public void MakeMyCSV(string MyFileName, SQLDataReader DataToOutput, int[] ExcludedColumns) //if this is your current method signature... 
{ 
    //iterate through each record 
    // iterate through each column 
    //  if ExcludedColumns is not null then see if this column is in it 
    //   if it is not in it, output it 
} 
0

Вам не нужно включать столбец, используемый в предложении order by SQL-запроса в результирующем наборе. Можете ли вы просто оставить его в выписке?

0

Вы не удаляете столбец из datareader. Если данные не нужны, то не читайте столбец. Если вам нужны данные столбца для сортировки, прочитайте его. При записи файла CSV просто пропустите данные. Запись CSV-файла не связана с чтением с помощью SqlDataReader.

0

Добавьте параметр, включающий список столбцов для игнорирования.

У меня иногда есть такие параметры, как ignore_columns, include_columns и т. Д. Если задан параметр ignore_columns, а столбец в списке, он игнорируется. Если задан параметр include_columns, а столбец отсутствует в списке, он игнорируется.

0

Вы не можете! Вам нужно будет изменить код, который генерирует CSV для обработки только необходимых столбцов (столбцов) и игнорирования других столбцов (столбцов).

Смежные вопросы