2009-05-28 58 views
0

我正在阅读C#中的文本文件并尝试将其保存到SQL数据库。我很好,除非我不想在导入中包含第一行,即列的名称。排除这些最简单的方法是什么?将文本文件保存到没有列名的SQL数据库

的代码是这个

while (textIn.Peek() != -1) 
{ 
    string row = textIn.ReadLine(); 
    string[] columns = row.Split(' '); 
    Product product = new Product(); 
    product.Column1 = columns[0]; 
    etc..... 
    product.Save(); 
} 

感谢

+0

看起来你的文本文件是制表符分隔的。如果是这样的话可以使用: row.Split(“\ t”); – Beatles1692 2009-05-29 07:04:29

回答

0

你怎么导入数据是怎样的?如果您在C#中循环并一次插入一个,则构建循环以跳过第一个插入!

或者只是删除插入后的第一行。

给更多的信息,获得更多的细节......

2

如果您正在编写自己的代码的读取文件,然后导入......你为什么不直接跳过第一行?

0

传递一个标志到程序中(以防将来第一行也是数据),导致程序跳过第一行文本。

如果它与数据库中使用的列名相同,也可以解析它以获取列名,而不是对它们进行硬编码(假设这就是您当前所做的:))。

最后,如果您使用的是MySQL数据库并且您有命令行访问权限,您可能需要查看LOAD DATA LOCAL INFILE语法,该语法允许您导入相当任意定义的CSV数据。

1

这里是我的建议:

string[] file_rows; 
using(var reader=File.OpenText(filepath)) 
{ 
file_rows=reader.ReadToEnd().Split("\r\n"); 
reader.Close(); 
} 

for(var i=1;i<file_rows.Length;i++) 
{ 
var row=file_rows[i]; 
var cells=row.Split("\t"); 
.... 
} 
0

以供将来参考看看这个真棒包:FileHelpers图书馆

我不能添加链接,只是还没有,但谷歌应该帮助,这是在SourceForge上

当人们坚持使用文件作为整合时,它使我们的生活变得轻松一点