2

「オブジェクト参照がオブジェクトのインスタンスに設定されていません。」、nullreferenceException .グリッドビューから取得している値を変数に割り当てようとしています。最初の行でエラーが発生します。値が null の場合の状況をどのように処理できますか。 isnot Nothing を使用してみましたが、それでもエラーが発生し、 isdbnull は動作しません。これは、 datatable を扱っていないためです。

グリッドビューがまだ空の場合にのみ、このエラーが発生します。これをどのように処理できますか。

If Not IsNothing(ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells("PercentageInMix").Value) Then
    PIM = ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells("PercentageInMix").Value
Else
    PIM = FormatNumber("0.00", 2)
End If
4

1 に答える 1

1

null問題は、コード行に何が含まれているかがわからないことです。問題の行を考慮すると、次の式があります。

ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells("PercentageInMix").Value

nullその式で評価できるものは6つあります。

  • ProductsRawMaterialGridになり得るnull
  • ProductsRawMaterialGrid.GridViewElementになり得るnull
  • ProductsRawMaterialGrid.GridViewElement.CurrentRowになり得るnull
  • ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cellsになり得るnull
  • ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells("PercentageInMix")になり得るnull
  • ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells("PercentageInMix").Valueになり得るnull

そのうちの1つ(最後の1つ)のみをチェックしています。残念ながら、他のいずれかがである場合はnull、が表示されますNullReferenceException

知識に基づいた推測では、コードを呼び出すときかCurrentRownullセル名が間違っていて.Cells("PercentageInMix")ですnull。このコードを分割するか、デバッガーで調べると、問題の解決に役立ちます。

于 2012-08-01T09:04:53.153 に答える