在数据库中加载CSV文件

时间:2013-04-07 17:56:45

标签: c# database csv

我刚开始学习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]和新订单在halfpipe之后( |)。

这就是我所拥有的:

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

但是这会将所有文本加载到一个textBox中。我正在考虑将csv中的数据(用','分隔)加载到不同的textBox,然后将textBoxes的值加载到数据库。但这不是我猜的最佳方式。

将CSV中的所有数据加载到数据库的最佳方法是什么?

非常感谢您的提示。

2 个答案:

答案 0 :(得分: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
}

但是,如果字段中出现逗号会怎样?这不适用于那种情况。

答案 1 :(得分:1)

我会使用您的CSV中的信息加载DataTable。然后创建与数据库的连接,并将DataTable插入数据库。通过一些优秀的代码示例,此链接似乎可以执行您尝试的操作:http://www.codeproject.com/Articles/11435/Importing-CSV-Data-and-saving-it-in-databasehttp://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader