我想在将数据从平面文件加载到Sql server时拒绝行,并使用额外的逗号处理行并将它们重定向到平面文件
实施例
ID,FirstName,LastName,City
1,Robert,Gurera,Phoenix
2,Tom,Bradley,Cleveland,5
3,Jack,Williams,Dallas
4,Tim,Doherthy,San franscisco,6,7
我想拒绝第2行和第4行并将它们加载到平面文件
任何帮助表示赞赏
由于
答案 0 :(得分:0)
这很简单:
答案 1 :(得分:0)
如果你真的需要检查我会检查使用脚本组件源:
加载到一列并拆分。
如果长度正确,则将该行发送到数据流,否则将其发送到故障路径(最有可能是平面文件或其他内容。
如果您需要更多解释,请告诉我。
我只是查看了你的数据,你可以使用split并只处理左边的4列(0-3)。
以下是代码:
using System.IO;
static void Main(string[] args)
{
using(var reader = new System.IO.StreamReader(@"C:\test.csv"))
{
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(','); //Make sure single quote to represent char
if(values.length == 4)
{
Output0Buffer.AddRow();
Output0Buffer.Id=int.Parse(values[0]);
Output0Buffer.Fname = values[1];
Output0Buffer.LastName = values[2];
Output0Buffer.City = values[3];
}
else
{
BadRowBuffer.AddRow();
BadRowBuffer.BadRow = line.ToString();
}
}
}
}
您需要设置输出。