![](/img/trans.png)
[英]ReadStreamAsDT - Filehelpers and C# - How do I dynamically read in a CSV using filehelpers?
[英]How to read two entities from single text file using filehelpers or other library in C#
文本文件包含訂單和訂單明細行。 訂單標題中的第一行。 之后,明細行數是可變的。 詳細信息之后是空白行,然后是下一個訂單等。對於訂單行,第一個字段是訂單號。 對於明細行,第一字段始終為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
引用自
顯示了如何讀取兩個表。 如何在這些表之間創建關系:在讀取外鍵到訂單列時,應將其添加到明細表中。 如何實現這一點,從上一個訂單行獲取最后一個訂單號,並將其添加到明細記錄中?
好吧,你可以一口氣去蠻力。 讀入整個文件,像空白一樣拆分。 在每個拆分的第一行之外創建訂單在其余部分之外創建明細。
如果文件很大,則可以讀入每個空白行,然后按上述步驟進行處理。
另一個可能具有某些優點的解決方案。
通過編輯明細行並從其實際訂單行添加訂單號的過程來運行文件。 然后是另一個將順序和詳細信息分成兩個單獨文件的文件。 然后處理訂單,然后處理細節,而不必擔心所有這些同等和兩個結構。
第四個解決方案是,給想出這種格式的人一個很好的毆打,以鼓勵他們正確地使用它。
沒有萬能的解決方案,文件格式完全不適合將數據有效地傳遞到可能明智地存儲的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.