2011-08-11 4 views
0

私はVB.NETの初心者ですので、私の愚かさに優しくしてください;-)なぜ私は「宣言されていません」という結果になります。保護レベルのためにアクセスできない可能性があります。 IF THEN ELSEブロックのELSE上でのみ使用できますか?

私は単純なIF THEN ELSEブロックを使ってクエリーストリングの存在をチェックし、それが設定されているかどうかを確認します。考え方は、クエリーストリングがなければ、フォームは空であり、人々は新しいフォームを入力できるということです。クエリーストリングが存在し、それが空白でない場合、フォームデータのdbクエリーが発生し、フィールドにデータが入力され、ユーザーがフォームを更新できます。

ここに私のコードブロックがあります。

 Dim strQueryStingCheck As String 
     If Not (Request.QueryString("pid") Is Nothing) Then ' is there a querystring? 
     If Request.QueryString("pid").ToString <> "" Then ' does it have a value? 
      strQueryStingCheck = "u" 
      Session("travelauthno") = Request.QueryString("pid") 
     Else 
      strQueryStringCheck = "e" 
      Session("travelauthno") = "" 
     End If 
    End If 

私は「変数が宣言されていない。それは、その保護レベルにアクセスできないことがあり、」取得していONLYエルスコードブロックにstrQueryStringCheckのための - 私は「E」にstrQueryStringCheckを設定したときにそれがあります。私はそれを理解することはできません。

他の投稿、特にthis oneを見ました。それは助けになった。私はエラーを消すことができますが、なぜ私は最初にそれを取得しているのか理解したい。サブルーチン内で宣言しました。私が何か間違っていると、IF THEN ELSEブロックの両方のブロックにエラーを投げてはいけませんか? strQueryStringCheckを "u"に設定しても、それはありません。なぜELSEブロックだけにあるのですか?

PS私はVisual Studio 2010でコーディングしています。また、単純なIF ... THEN ... ELSEを入れ子にしても問題は解決しません。

答えて

1

これは、IFブランチにタイプミスがあるためです。もしあなたがstrQueryStingCheckを持っていれば、strQueryStringCheckがあります。あなたは最初のものにrがありません。変数宣言に同じタイプミスがあります。

+0

うん、ここでは他の誰かちょうどそれに気づいた。非常に恥ずかしい! – FatGUyFromQueens

+0

@FatGUyFromQueensこれで問題が解決した場合。それを答えとして受け入れるようにしてください。 –

1

文字列

としてそれ以外では慎重に見て...薄暗いstrQueryStingCheck:strQueryStringCheckは= "E"

あなたの薄暗い中で欠けているRは、彼らのです...

+0

ええ、ちょうどそれをキャッチしました。みんなあなたの助けをありがとう! – FatGUyFromQueens

関連する問題