我刚开始学习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中的所有数据加载到数据库的最佳方法是什么?
非常感谢您的提示。
答案 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-database或http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader。