0

有谁知道我的代码在哪里出错了?这段代码工作得很好,但是我将文件传输到另一台计算机,当我编译文件时弹出这个错误。

 private void ShowGeneratedSchedule(string sLocationName, string sAllocationDate)
    {
        //lstAllocation = db.allocations.Where(a => a.AllocationDate == sAllocationDate &&
        //    a.LocationName == sLocationName).ToList();

        scheduleDGV.EditMode = DataGridViewEditMode.EditProgrammatically;
        for (int i = 0; i < lstAllocation.Count; i++)
        {
            for (int j = 0; j < scheduleDGV.Rows.Count - 1; j++)
            {
                for (int k = 0; k < scheduleDGV.Columns.Count; k++)
                {
                    if (scheduleDGV[0, j].Value.Equals(lstAllocation[i].LocationName) &&
                        scheduleDGV[1, j].Value.Equals(lstAllocation[i].StationName) &&
                        scheduleDGV.Columns[k].HeaderText.Equals(lstAllocation[i].AllocationTime.ToString()))
                    {
                        if (lstAllocation[i].EmployeeName != null)
                        {
                            scheduleDGV[k, j].Value = lstAllocation[i].EmployeeName;
                        }
                    }
                }
            }
        }

        //scheduleDGV.DataSource = lstEmployeeSlot;
    }

到达此行时显示错误,

for (int i = 0; i < lstAllocation.Count; i++)

有谁知道这里有什么问题?是否有可能将其转移到另一台计算机上?

4

4 回答 4

2

这很可能意味着 lstAllocation 为空并且从未分配过值。为什么这条线被注释掉了?

 //lstAllocation = db.allocations.Where(a => a.AllocationDate == sAllocationDate &&
        //    a.LocationName == sLocationName).ToList();
于 2012-08-27T03:49:14.960 回答
2

lstAllocation没有初始化?方法第一行的注释是什么?为什么注释掉了?没有它就lstAllocation没有内容。

于 2012-08-27T03:49:51.240 回答
1

看起来你已经注释掉了你分配lstAllocation给某些东西的行。这很可能是您的问题。

于 2012-08-27T03:49:48.993 回答
0

lstAllocation引用变量在程序/代码中的某处被初始化(或null尚未构造对象或缺少对象)。

检查引用变量的值是一个好习惯——它是否具有null对象reference

private void ShowGeneratedSchedule(string sLocationName, string sAllocationDate)
    {
        if(lstAllocation==null){
           Console.WriteLine("List is not initialized. Can't proceed");
           return;
        }
        //rest code
    }
于 2012-08-27T04:10:07.370 回答