我正在构建一个应用程序,该应用程序需要读取一个分隔的文本文件,并用这些数据填充数据库(SQL Server)中的某个表。
我已将分隔符设置为:
我需要导入的文件中的数据示例:
旧类旧子类新子类ZETMODEM–750000595588–0–zetmoder–710000003092–0ZETMODEM–750000991145–0–zetmoder–750000003980–0ZETMODEM–750000570809–0–zetmoder–710000003092–0ZETMODEM–750000493550–0–zetmoder–750000000001–0
做这件事最好(更容易)的方法是什么?
谢谢!
分隔符的问题是,代码中没有特定的检查和边界。例如,您的数据很容易出现不同步。不正确的列,例如:
Example - Demonstration - Format
e - d - f
e - d
e - d - f
如果你做一个简单的split('-');
,那么你本质上会分裂错误。您需要创建一系列投影,以确保列和行数据正确匹配。这是一种简单的方法,但我不会详细说明数据的清理。
public class Row
{
public Row(string content)
{
var item = content.Split('-', StringSplitOptions.None);
Example = item[0];
Demonstration = item[1];
Format = item[2];
}
public string Example { get; set; }
public string Demonstration { get; set; }
public string Format { get; set; }
}
现在您已经有了一种分离行的方法,您只需对流进行某种形式的读取即可。然后在插入数据库时调用Row
。您也可以通过Linq、Sql和其他几种方法来实现这一点。