将文本文件保存到没有列名的SQL数据库
问题描述:
我正在阅读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();
}
感谢
答
你怎么导入数据是怎样的?如果您在C#中循环并一次插入一个,则构建循环以跳过第一个插入!
或者只是删除插入后的第一行。
给更多的信息,获得更多的细节......
答
如果您正在编写自己的代码的读取文件,然后导入......你为什么不直接跳过第一行?
答
传递一个标志到程序中(以防将来第一行也是数据),导致程序跳过第一行文本。
如果它与数据库中使用的列名相同,也可以解析它以获取列名,而不是对它们进行硬编码(假设这就是您当前所做的:))。
最后,如果您使用的是MySQL数据库并且您有命令行访问权限,您可能需要查看LOAD DATA LOCAL INFILE语法,该语法允许您导入相当任意定义的CSV数据。
答
这里是我的建议:
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");
....
}
答
以供将来参考看看这个真棒包:FileHelpers图书馆
我不能添加链接,只是还没有,但谷歌应该帮助,这是在SourceForge上
当人们坚持使用文件作为整合时,它使我们的生活变得轻松一点
看起来你的文本文件是制表符分隔的。如果是这样的话可以使用: row.Split(“\ t”); – Beatles1692 2009-05-29 07:04:29