我有一个标签分隔的文本文件,大约1.2 GB,我需要使用c#将其转换为CSV文件(逗号分隔)。 我必须将批量数据插入到sqlserver中,数据是在txt文件中,它是制表符分隔的,但是我希望它先转换成CSV然后插入到sql server中,或者是否有任何合适的方法将制表符分隔数据插入sql server数据库有效。
答案 0 :(得分:1)
将制表符分隔文件导入Excel(或其他电子表格程序),然后将其导出为CSV格式。
答案 1 :(得分:0)
如果您使用的是sqlserver,则应该查看SSIS(SqlServer集成服务)。此工具将帮助您以高效的方式导入csv文件。您可以在此工具中配置分隔符,因此无需用逗号替换选项卡。
答案 2 :(得分: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以逗号连接数组中的项目。
答案 3 :(得分:0)
如果是SQl Server 2005及更高版本,请右键单击要导入的数据库,然后选择任务,然后选择导入数据。指向制表符分隔文件,然后浏览剩余的屏幕。在最终屏幕上,就在您实际导入之前,您可以选择将其另存为 SSIS包(复选框)。这是迄今为止最简单,快速和有效的方式(没有从制表符分隔到csv的转换)导入它而无需编写任何代码,并且在向导结束时也可以使用代码,可用于自动执行任务,如果需要的话。
答案 4 :(得分:0)
默认情况下,SQL Server 2005中的BULK INSERT命令将使用选项卡作为字段分隔符,因此无需将制表符分隔的文本文件转换为csv格式。
事实上,将其转换为真正的csv会让事情变得更加困难。 BULK INSERT不会将引号视为字符串分隔符,因此一个真正的csv文件,其字符串中的逗号用引号封装的字符串将破坏导入。
有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/ms188365(v=sql.90).aspx。