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 が null であり、値が割り当てられていないことを意味します。この行がコメントアウトされているのはなぜですか?

 //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 に答える