Сохранение текстового файла в базе данных SQL без имен столбцов - PullRequest
0 голосов
/ 29 мая 2009

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

код такой

while (textIn.Peek() != -1)
{
   string row = textIn.ReadLine();
   string[] columns = row.Split('   ');
   Product product = new Product();
   product.Column1 = columns[0];
   etc.....
   product.Save();
}

спасибо

Ответы [ 5 ]

2 голосов
/ 29 мая 2009

Если вы сами пишете код для чтения в файле, а затем импортируете ... почему бы просто не пропустить первую строку?

1 голос
/ 29 мая 2009

Вот мое предложение:

string[] file_rows;
using(var reader=File.OpenText(filepath))
{
file_rows=reader.ReadToEnd().Split("\r\n");
reader.Close();
}

for(var i=1;i<file_rows.Length;i++)
{
var row=file_rows[i];
var cells=row.Split("\t");
....
}
0 голосов
/ 29 мая 2009

Для дальнейшего ознакомления взгляните на этот удивительный пакет: FileHelpers Library

Я пока не могу добавить ссылки, но Google должен помочь, он на sourceforge

Это делает нашу жизнь немного проще, когда люди настаивают на использовании файлов в качестве интеграции

0 голосов
/ 29 мая 2009

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

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

В заключение: если вы используете базу данных MySQL и у вас есть доступ к командной строке, вы можете посмотреть синтаксис LOAD DATA LOCAL INFILE , который позволяет импортировать довольно произвольно определенные данные CSV .

0 голосов
/ 29 мая 2009

как вы импортируете данные? если вы зацикливаетесь на C # и вставляете их по одному, создайте свой цикл, чтобы пропустить первую вставку!

или просто удалите первую строку, вставленную после того, как они там есть.

дайте больше информации, получите больше деталей ...

...