0

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();
}

ありがとう

4

5 に答える 5

2

自分でコードを書いてファイルを読み込んでからインポートする場合...最初の行をスキップしてみませんか?

于 2009-05-28T20:49:30.423 に答える
1

これが私の提案です:

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");
....
}
于 2009-05-29T07:20:01.167 に答える
0

今後の参考のために、この素​​晴らしいパッケージを見てください:FileHelpers Library

まだリンクを追加できませんが、googleが役立つはずです。sourceforgeにあります

人々が統合としてファイルを使用することを主張するとき、それはここでの私たちの生活を少し楽にします

于 2009-05-29T08:01:36.650 に答える
0

どのようにデータをインポートしていますか?C# でループして一度に 1 つずつ挿入する場合は、最初の挿入をスキップするようにループを作成してください。

または、挿入された後に挿入された最初の行を削除するだけです。

詳細情報を提供し、詳細を入手してください...

于 2009-05-28T20:49:22.683 に答える
0

プログラムがテキストの最初の行をスキップするフラグをプログラムに渡します (将来、最初の行もデータである場合に備えて)。

データベースで使用されているものと同じ列名である場合は、ハードコーディングする代わりに、それを解析して列名を取得することもできます (それが現在行っていることと仮定します:))。

最後に、MySQL データベースを使用していて、コマンド ラインにアクセスできる場合は、かなり任意に定義された CSV データをインポートできるLOAD DATA LOCAL INFILE構文を確認することをお勧めします。

于 2009-05-28T20:50:09.920 に答える