0

我有一个大约 1.2 GB 的制表符分隔文本文件,我需要使用 c# 将其转换为 CSV 文件(逗号分隔)。我必须将批量数据插入到 sqlserver 中,数据在 txt 文件中,该文件是制表符分隔的,但我希望它先转换为 CSV 然后插入到 sql server 中,或者有什么合适的方法可以将制表符分隔的数据插入sql server 数据库高效。

4

5 回答 5

1

将制表符分隔文件导入 Excel(或其他电子表格程序),然后将其导出为 CSV。

于 2012-11-28T12:51:40.837 回答
1

SQL Server 2005 中的 BULK INSERT 命令默认使用制表符作为字段分隔符,因此无需将制表符分隔的文本文件转换为 csv 格式。

事实上,将其转换为真正的 csv 会使事情变得更加困难。BULK INSERT 不会将引号视为字符串分隔符,因此真正的 csv 文件在字符串中的某处用逗号封装字符串的真正 csv 文件将中断导入。

有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/ms188365(v=sql.90).aspx

于 2016-02-04T16:09:57.573 回答
0

如果您使用的是 sqlserver,您应该看看 SSIS(SqlServer 集成服务)。此工具将帮助您以有效的方式导入 csv 文件。您可以在此工具中配置分隔符,因此无需将制表符替换为逗号。

于 2012-11-28T12:52:25.980 回答
0

我想出了这个在制表符上分开的:

   using(System.IO.StreamReader rdr = new System.IO.StreamReader(@"C:\text.txt"))
   {
            int counter = 0;
            string lne;
            while((lne = rdr.ReadLine()) != null)
            {
                string[] temp = lne.Split('\t');
                Console.WriteLine(temp[0]);
                Console.WriteLine(temp[1]);
                counter++;
            }
   }
   Console.ReadLine();

之后,您可以使用 StringBuilder 用逗号连接数组中的项目。

于 2012-11-28T13:04:19.753 回答
0

如果它的 SQl Server 2005 及更高版本,请右键单击要导入的数据库并选择Tasks然后Import Data。指向您的制表符分隔文件,然后浏览剩余的屏幕。在最后一个屏幕上,就在您实际导入之前,您可以选择将其保存为SSIS 包(复选框)。这是迄今为止最简单、快速和有效的方式(无需从制表符分隔到 csv 的转换)无需编写任何代码即可导入它,并且该代码也可在向导结束时使用,可用于自动执行任务,如果需要。

于 2012-11-28T14:23:26.417 回答