2009-05-14 8 views
0

他のコントロールとは別に、値を入力するためのテキストボックス、値を表示するテキストボックス、ドロップダウンリストボックス、および検索ボタン。私は、検索結果を表示するには、次のコードを使用しています:検索ボタンがある後C#でASP.NETでNullReferenceExceptionエラーが発生しました - エラー処理を試みています

if (TextBox3.text == DropDownList3.Items.FindByText(TextBox3.Text).Value) 
{ 
    etc... 
} 

DDL3はDataTableのから値を取得し、その値はTextBox3に入力すると、検索結果を表示するためにDDL3値のいずれかと一致する必要がありますクリックしたTextBox3の値がNULLまたはDDL3の値と一致しない場合、NullReferenceExceptionエラーが発生します。これは合理的です。しかし、私はこのエラーを処理しようと数時間を費やしており、私はそれについてどうやって行くのか分からないようです。 TextBox3 == nullなどのようなif文を追加しようとしましたが、無駄になりました。null値または間違った値を補うために上記のif文をどのように変更する必要がありますか?

DFM

答えて

2

その例外でキャッチ...試みを使用してみてください、ありがとう:

try { 
    TextBox3.text = DropDownList3.Items.FindByText(TextBox3.Text).Value 
} catch (NullReferenceException ex) { 
    TextBox3.text = "(none)"; 
} 
+0

回答ありがとうございます。私は上記の解決策を試しました。しかし、NullReferenceExceptionの後の "e"のためにエラーが発生しています。私はEventArgsのために使用されているので、 "e"を宣言することはできません。 –

+0

エラーが発生しますが、ソリューションは機能します。ありがとうございました。私は他のエラーを理解する必要があります。しかし、イベントは適切に発生します。 –

+0

ちょうどそれをexに変更してください –

1

アイテムはそのをチェックする前に、リストに存在するかどうかを確認する必要があります値。

if (DropDownList3.Items.FindByText(TextBox3.Text) != null) 
{ 
    // ... 
} 
+0

repsonseのおかげで - アイテムはif文の前にDDLに存在します。私はこの質問を投稿する前にあなたの例を試してみましたが、コードは!=をスキップし、次のifステートメントに行きます。問題のステートメントは、エラーを返します。 –