1

C# の学習を始めたばかりで、簡単なアプリケーションをいくつか作成しました。私が今取り組んでいるアプリケーションは、(Access) データベースにデータを読み込んで入力するアプリケーションです。データベースに正常に接続し、データを入力できます。今問題。

データ (注文) を含む csv ファイルがあります。これらの注文をデータベースにロードしたいと考えています。csv ファイルは次のようになります。

Order 1: 2 cakes,01-01-2013,chocolate,Jan|Order 2: 5 cakes,01-08-2013,vanilla,Piet|

ご覧のとおり、(データベース テーブルと同じ) [Order #]、[Amount]、[Date]、[KindOfCake]、[Buyer] で並べられており、新しい注文はハーフパイプ (|) の直後に表示されます。

これは私が持っているものです:

String[] orders1= File.ReadAllText(@"c:\\orders.csv").Split('|');
for (int i = 0; i < orders1.Length; i++)
{
    textBox1.AppendText(orders[i] + Environment.NewLine);
}

しかし、これはすべてのテキストを 1 つの textBox にロードします。csv (「,」で区切られた) のデータを別の textBoxes にロードしてから、textBoxes の値をデータベースにロードすることを考えています。しかし、それは私が推測している最善の方法ではありません。

CSV 内のすべてのデータをデータベースにロードするための最良の方法は何ですか?

ヒントをありがとうございました。

4

2 に答える 2

2

パイプ文字で分割するのと同じように、各文字列をコンマで分割できます。

String[] orders = File.ReadAllText(@"c:\\orders.csv").Split('|');
foreach (string order in orders) {
    String[] orderFields = order.Split(',');
    // Now you have your fields, put them in the DB. No need to put them
    // into text boxes
}

しかし、フィールドにカンマがあるとどうなるでしょうか? これはその場合には機能しません。

于 2013-04-07T18:12:20.640 に答える
1

DataTableCSV からの情報をロードします。次に、データベースへの接続を作成し、それをデータベースに挿入しDataTableます。このリンクは、いくつかの優れたコード サンプルで、あなたが試みていることを実行しているように見えます: http://www.codeproject.com/Articles/11435/Importing-CSV-Data-and-Saving-it-in-databaseまたはhttp:// www.codeproject.com/Articles/9258/A-Fast-CSV-Reader .

于 2013-04-07T18:12:31.913 に答える