0

我正在读取 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();
}

谢谢

4

5 回答 5

2

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

于 2009-05-28T20:49:30.423 回答
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");
....
}
于 2009-05-29T07:20:01.167 回答
0

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

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

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

于 2009-05-28T20:49:22.683 回答
0

为了将来参考,看看这个很棒的包:FileHelpers Library

我还不能添加链接,但谷歌应该会提供帮助,它在 sourceforge 上

当人们坚持使用文件作为集成时,这让我们的生活变得更轻松

于 2009-05-29T08:01:36.650 回答
0

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

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

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

于 2009-05-28T20:50:09.920 回答