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



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

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

并用分隔符"|"拆分它,但我是流读取器没有读取末尾包含 null 的第 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();
         }
     }
} 

如果我们把:

athlete.Agency_Code = Records[5];

连同(来自评论(:

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

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

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

相关内容

  • 没有找到相关文章