Linq更新-无法对空引用执行运行时绑定

时间:2018-11-06 11:59:44

标签: c# asp.net-mvc entity-framework linq-to-excel

我正在使用LinqToExcel和C#从MS Excel电子表格中读取数据,然后更新MS SQL数据库中的数据记录。

Excel文件具有以下标题:COURSE_ID,PROVIDER_COURSE_TITLE

我的代码是这样的:

public class TestDataCourse
{
    [ExcelColumn("PROVIDER_COURSE_TITLE")]
    public string cTitle
    {
        get;
        set;
    }
}

///////////////////////////////

string pathToExcelFile = @"C:\\O_COURSES.xlsx";
ConnexionExcel ConxObject = new ConnexionExcel(pathToExcelFile);

//read data from excel
var query1 = (from a in ConxObject.UrlConnexion.Worksheet<TestDataCourse>("O_COURSES")
                      select a).Take(2000).ToList();

//Get data from MS SQL database that need updated
var courses = _courseService.GetAllCoursesFromDB().Take(100).ToList();

int count = 0;

foreach (var course in courses)
{
     //Iterate through the excel doc and assign the 
     TestDataCourse fakeData = query1.Skip(count).Take(1).FirstOrDefault();

     course.CourseTitle = fakeData.cTitle;

     count++;
}

_courseService.Save();

运行此代码时,我可以看到它确实更新了数据库中的某些记录,但是随着代码执行的继续,我在Visual Studio中打开了一个源不可用选项卡, 无法对空引用执行运行时绑定

空引用异常使我想到Excel文档中可能存在一些空数据,因此我将这一行代码放入for循环中:

course.CourseTitle = fakeData == null ? "Course Test" : fakeData.cTitle;

但是我仍然遇到同样的问题。

有人可以帮忙吗?

谢谢。

0 个答案:

没有答案