2012-05-02 7 views
1

パラメータ変数が渡されない場合、このコードは "文字列"から "日付の型への変換"の例外をスローします。パラメータが渡されていない場合、vb.netの要求querystringの例外を回避する方法

これは私のコードです。

Public Shared ReadOnly Property Request_projectStartDate() As Date 
     Get 
      Dim _value As String = Nothing 

      If Not HttpContext.Current.Request.QueryString("projectStartDate") Is Nothing Then 
       _value = HttpContext.Current.Request.QueryString("projectStartDate").ToString() 
      End If 

      Return CDate(_value) 
     End Get 
    End Property 
+0

私は間違いを犯しました。「文字列からの変換」がタイプ「日付」に無効です。何もないので、 – themis

+0

あなたの質問は何ですか? '_value_'は、' projectStartDate'がクエリ文字列にない場合、 'Nothing'になります。 – Oded

+0

この例外を回避するにはどうすればよいですか? msgstr "" "文字列" "から '' Date ''への変換は無効です。"パラメータが渡されることはないため、CDateに変換すると何も例外がスローされません。そこにデフォルトの日付を追加する必要がありますか? 1900/01/01のように?または何も返す方法がありますか? – themis

答えて

11
あなたは@Massimilianoが報告しているものを確認することができ

と1つの以上のチェック

If Request.QueryString.HasKeys() Then 

    // Check for specified querystrings... 
    If Not String.IsNullOrEmpty(Request.QueryString("projectStartDate")) Then 
     // Your logic 
    End If 

End If 
+0

問題は私が実際にcdateに何も変換しないときです。 – themis

+1

あなたは何もCDateに変換する必要はありません。これらの2つのチェックは、cdateを使用して大文字と小文字を区別できる何か(PerojectStartDate)があることを確認します。あなたはまだエラーを取得していますか? –

+0

thanx。正解、私はcdateをする必要はありません。 Thanx – themis

1
If Not String.IsNullOrEmpty(Request.QueryString("projectStartDate")) Then 
    // 
End If 
+0

問題は、実際には何も変換しないときです。 – themis

0

場合、Request.QueryString( "projectStartDate")は何もそして場合、Request.QueryString( "projectStartDateを")ISNOT場合< > "" Then

関連する問題