Подскажите как разумнее всего реализовать в NET такую задачу:
есть файл(текстовый) его надо перевести в БД(MS SQL).
формат файла не простой: по сути в нем три таблицы связанных
отношениями один-ко-многим.
хочется сделать так: файл выгрузить в рваный массив,
массив выгрузить в набор данных и слить данные в источник.
но, не могу найти как реализовать выгрузку массива в DataSet.
А ,вообще, посоветуйте ,в общем, как под NET решаются такие задачи ?
Здравствуйте, mumu, Вы писали:
M>Подскажите как разумнее всего реализовать в NET такую задачу: M>есть файл(текстовый) его надо перевести в БД(MS SQL). M>формат файла не простой: по сути в нем три таблицы связанных M>отношениями один-ко-многим. M>хочется сделать так: файл выгрузить в рваный массив, M>массив выгрузить в набор данных и слить данные в источник. M>но, не могу найти как реализовать выгрузку массива в DataSet. M>А ,вообще, посоветуйте ,в общем, как под NET решаются такие задачи ?
Мы решали аналогичную задачу — требовалось загружать данные из текстовых файлов ПФР в базу, а после обработки базы выгружать обратно в текст формата ПФР. Написали пару классов, один из которых читает данные из файла в типизированный датасет, а другой пишет из датасета в файл. Ну а забросить датасет в базу или считать в него данные из базы — это можно даже не обсуждать.
Естественное ограничение такого решения — все данные грузятся в память, поэтому гигабайтные файлы могут вызвать проблему . Однако для ПФР это не критично, т.к. у них текстовые файлы соответствуют "пачкам", а в одной пачке не может быть больше 200 человек.
S_I>..Написали пару классов, один из которых читает данные из файла в типизированный датасет, а другой пишет из датасета в файл...
не моглы бы вы по-подробней объяснить как вы читали данные из файла в датасет ?
дело в том, что у меня создан массив с данными из файла , а я не знаю можно ли его
разом выгрузить в датасет.
скажите какими вы пользовались методами для чтения данных из файла в датсет.
Здравствуйте, mumu, Вы писали:
M>не моглы бы вы по-подробней объяснить как вы читали данные из файла в датасет ? M>дело в том, что у меня создан массив с данными из файла , а я не знаю можно ли его M>разом выгрузить в датасет. M>скажите какими вы пользовались методами для чтения данных из файла в датсет.
Все тривиально — чтение строк через StreamReader.ReadLine и разбор ручками.
Думаю, что лучше отправить вам по почте свои классы. Опубликуйте свой e-mail в своем профиле или напишите на мой адрес (есть в моем профиле).
Если у кого-нибудь еще есть интерес, сообщите на мой e-mail — или вышлю персонально, или выложу на rsdn
Re[3]: файл в базу
От:
Аноним
Дата:
25.11.04 18:33
Оценка:
Задача на типа перловской и решается лучше всего построчным разбором и парсингом через регекс, именованные группы кстати очень помогают.
Затем мэпинг из этих именованных групп в поля таблицы в датасете.
Все можно описать во внешнем файле, не забивая код никакими лишними алгоритмами разбора.
Здравствуйте, mumu, Вы писали:
M>хочется сделать так: файл выгрузить в рваный массив, M>массив выгрузить в набор данных и слить данные в источник. M>но, не могу найти как реализовать выгрузку массива в DataSet.
Здравствуйте, AndrewVK, Вы писали:
AVK>А почему бы сразу не писать в DataSet?
потому, что .. я даже не представляю как это возможно воплотить в реальность...
файл текстовый, но юниксовый, поэтому читаю его как бинарный.
структура примерно такая
[заголовок]\n
[блок_1][запись1]...[запись n]\n
...
[блок_m][запись1]...[запись l]\n
три таблицы в типизированном датасете
заголовок 1->8 блок 1->8 запись
...
думаете , можно предварительно не разбирать файл ?
Здравствуйте, mumu, Вы писали:
M>А ,вообще, посоветуйте ,в общем, как под NET решаются такие задачи ?
А почему именно под .Net?
В MSSQL'е есть чудная утилита bcp.exe и не менее чудная команда bulk insert, которые замечательным образом работают с текстовыми файлами в пакетном режиме...
На крайняк есть еще OleDB-шный интерфейс IRowsetFastLoad, для той же цели..
Здравствуйте, Merle, Вы писали:
M>А почему именно под .Net?
в познавательных целях M>В MSSQL'е есть чудная утилита bcp.exe и не менее чудная команда bulk insert, которые замечательным образом работают с текстовыми файлами в пакетном режиме...
здесь мне не хватает опыта и информации,нет примеров.может подскажите
где можно найти ? M>На крайняк есть еще OleDB-шный интерфейс IRowsetFastLoad, для той же цели..
спасибо, сейчас посмотрю..
Здравствуйте, mumu, Вы писали:
AVK>>А почему бы сразу не писать в DataSet?
M>потому, что .. я даже не представляю как это возможно воплотить в реальность...