将文本文件保存到没有列名的SQL数据库

时间:2009-05-28 20:45:54

标签: c# sql text-files readline

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

代码就像这样

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

感谢

5 个答案:

答案 0 :(得分:2)

如果您自己编写代码以读取文件然后导入...为什么不跳过第一行?

答案 1 :(得分: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");
....
}

答案 2 :(得分:0)

你是如何导入数据的?如果你在C#中循环并一次插入一个,那么构造你的循环以跳过第一个插入!

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

提供更多信息,获取更多详细信息......

答案 3 :(得分:0)

将标志传递给程序(如果将来第一行也是数据),导致程序跳过第一行文本。

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

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

答案 4 :(得分:0)

将来参考这个很棒的包:FileHelpers Library

我暂时无法添加链接,但谷歌应该提供帮助,这是源于sourceforge

当人们坚持使用文件作为集成

时,它使我们的生活变得更加容易