0

テキスト ファイルには、注文と注文明細行が含まれています。注文ヘッダーの最初の行。その後、可変数の詳細行があります。詳細の後に空白行があり、次の注文などが続きます。注文行の最初のフィールドは注文番号です。詳細行の最初のフィールドは常に 1 です。

128502 02.01.2012 20120 02.01.2012
1   Wine    0   1300
1   Meat    5,8333  5,83

128503 02.01.2012 20123 02.01.2012  
1   Wine    20  130
1   Meat    1,33    283,23
1   Cow 2,333   333,23

....

このファイルはエンティティのリストに読み込まれる必要があります:

class Order {
  public string Number; // order number from first field, primary key 
  public string Date;
  ... other fields  
}


class OrderDetails {
  public string Number; // order number from previous line , foreign key to Order
  public string ProductName;
  ... other fields  
}

(代わりに Number カスタム整数 ID 列を関係に使用することもできます)

FileHelpers ライブラリまたはその他の方法を使用して、C# ASP.NET MVC2 でそのようなファイルを読み取る方法は?

アップデート

サンプル

http://www.filehelpers.com/example_multirecords.html

から参照

FileHelpers を使用した複数の CSV 構造

2 つのテーブルを読み取る方法を示します。これらのテーブル間の関係を作成する方法: 列を注文するための外部キーの読み取り中に、詳細テーブルに追加する必要があります。これをどのように実装し、前の注文明細から最後の注文番号を取得し、それを詳細レコードにしますか?

4

1 に答える 1

0

さて、あなたは一度に総当たり攻撃を行うことができます。ファイル全体を読みます。のように空白で分割します。各分割の最初の行から注文を作成します。残りの行から詳細を作成します。

ファイルが巨大な場合は、各空白行まで読み込んで、上記のように処理できます。

いくつかの利点があるかもしれない別の解決策。

詳細行を編集し、実際の注文行から注文番号を追加するプロセスでファイルを実行します。次に、順序と詳細を2つの別々のファイルに分割する別のファイル。次に、このすべてのディットと2つの構造について心配することなく、注文を処理してから詳細を処理します。

4番目の解決策は、この形式を思いついた人に、適切に実行するように促すための良い打撃を与えることです...

これに対する魔法の杖の解決策はありません。ファイル形式は、データを適切に保存する可能性のあるものにデータを効率的に渡すにはまったく不適切です。

于 2012-06-30T13:52:29.830 に答える