0

現在のASP.net MVC 3.0プロジェクトでは、ある状況に陥っています。

  1. 4 つの .txt ファイルがあり、それぞれに約10 万行のレコードがあります
  2. これらのファイルは、毎週新しいファイルに置き換えられます。

これらの 4 つのテキスト ファイルからデータを照会する必要がありますが、これを行うための最適かつ効率的な方法を選択できません。

私が考えた3つの方法

  1. これらのテキスト ファイルを毎週 XML に変換し、 Linq-XMLでクエリを実行する
  2. txt から SQL Server へのバッチ インポートを毎週実行し、 Linq-Entitiesを使用してクエリを実行する
  3. すべての変換を避け、テキスト ファイルから直接クエリします。

この状況に対処する最善の方法を提案できる人はいますか。

アップデート:


テキスト ファイルの URL 認証情報を含む txt ファイルにアクセスするための URL
資格情報を使用してこのファイルに接続する必要があります。

正常に接続すると、次のようなテキスト ファイルが作成され、Pipeline が区切り記号として使用されます。
これはテキスト ファイルです。


テキストファイルのデータはこんな感じ 次に、黄色で強調表示されたフィールドを検索して、その行のデータを取得する必要があります。

注: テキスト ファイルの最初の 2 行は、ファイルのヘッダーです。

4

1 に答える 1

0

さて、私は自分の道を見つけました。これが、これを成し遂げることに興味を持っている人にとって役立つことを願っています.

string url = "https://myurl.com/folder/file.txt";
WebClient request = new WebClient();
                request.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["UserName"], ConfigurationManager.AppSettings["Password"]);
                Stream s = request.OpenRead(url);
                using (StreamReader strReader = new StreamReader(s))
                {
                    for (int i = 0; i <= 1; i++)
                        strReader.ReadLine();
                    while (!strReader.EndOfStream)
                    {
                        var CurrentLine = strReader.ReadLine();
                        var count = CurrentLine.Split('|').Count();
                        if (count > 3 && CurrentLine.Split('|')[3].Equals("SearchString"))
                        {
                            #region Bind Data to Model
                            //var Line = CurrentLine.Split('|');
                            //CID.RecordType = Line[0];
                            //CID.ChangeIdentifier = Line[1];
                            //CID.CoverageID = Convert.ToInt32(Line[2]);
                            //CID.NationalDrugCode = Line[3];
                            //CID.DrugQualifier = Convert.ToInt32(Line[4]); 
                            #endregion
                            break;
                        }
                    }
                    s.Close();
                }
                request.Dispose();
于 2012-03-09T20:11:04.493 に答える