如何使用Streamreader c#读取空字符串

时间:2018-04-15 21:03:36

标签: c# null streamreader

我正在阅读包含以下数据的文件

123456788|TUUKKA|RASK|01/01/85|HOCKEY|123
123456786|TOM|BRADY|01/01/75|FOOTBALL|123
123456787|RAJON|RONDO|01/01/80|BASKETBALL|ABC
123456785|DUSTIN|PEDROIA|01/01/83|BASEBALL|
123456789|DAVID|ORTIZ|01/01/77|BASEBALL|123

并将其与分隔符' |'分开,但我是流阅读器不读取最后包含空值的第4行。如何处理?

这是我阅读和拆分文本文件行的代码

string s = string.Empty;
using (System.IO.StreamReader File = new System.IO.StreamReader(Path))
{
    File.ReadLine();//Removing the first line
    while ((s = File.ReadLine()) != null)
    {
        string[] str = s.Split('|');
        UpdateRecords.Athelete(str);
    }
}

这是我的UpdateRecords.Athelete(str)代码:

public static void Athelete(string[] Records) {
    tblAthlete athlete = new tblAthlete();
    using (SportEntities sportEntities = new SportEntities()) {
        var temp = Convert.ToInt32(Records[0]);
        if (sportEntities.tblAthletes.FirstOrDefault(x => x.SSN == temp) == null) {
            athlete.SSN = Convert.ToInt32(Records[0]);
            athlete.First_Name = Records[1];
            athlete.Last_Name=Records[2];
            athlete.DOB = Convert.ToDateTime(Records[3]);
            athlete.SportsCode = Records[4];
            athlete.Agency_Code = Records[5];
            sportEntities.tblAthletes.Add(athlete);
            sportEntities.SaveChanges();
         }
     }
} 

1 个答案:

答案 0 :(得分:2)

如果我们提出:

athlete.Agency_Code = Records[5];

与(来自评论):

  

该列是一个引用另一个表PK的FK,它可以接受空值。

问题变得清晰了。空字符串("" a null;这是一个空字符串!听起来你只是想要这样的东西:

var agencyCode = Records[5];
athlete.Agency_Code = string.IsNullOrEmpty(agencyCode) ? null : agencyCode;