2012-10-27 113 views
2

我想根据CSV文件中数据库的条件更新一列(第三列)。 要移除100,并用与,,系1500在CSV替换它的雇员文件更新CSV文件中的一列C#

数据库表:如图所示像下面

EmpID DeptID 

100 1500 

101 1300 

102 1500 

CSV文件:

EmpID,EmpName,Score,Grade1,Grade2,Grade3 
100,emp1,100,A1,A3 
101,emp2,250,A1,A5,A2 
102,emp3,100,A1 

结果应该是这样的:

100,emp1,,A1,A3 
101,emp2,250,A1,A5,A2 
102,emp3,,A1 

首先,我无法取代val在第三列中的UE,请参阅下面的代码:

string file1 = @"F:\test.csv"; string[] lines = System.IO.File.ReadAllLines(file1); 
System.IO.StreamWriter sw = new System.IO.StreamWriter(file1);  
foreach(string s in lines) { 
    sw.WriteLine(s.Replace("100", ""));  
}  
sw.Close(); 

如果我给在foreach循环以下线:

sw.WriteLine(Regex.Replace(s, s.Split(',')[2], m => s.Split(',')[2].ToString().Replace("100", ""))); 

它是从100更换所有的值以空字符串。

你能告诉我如何替换第3列中的值吗?

在此先感谢。

回答

2
var lines = new string[10]; 
var splitLines = lines.Select(l => l.Split(',')); 
foreach (var splitLine in splitLines) 
{ 
    if (splitLine[2] == "100") 
    { 
     splitLine[2] = "0"; 
    } 
    var line = string.Join(",", splitLine); 

    // And then do what you wish with the line. 
} 
+0

嗨levib,非常感谢你 – chinna373