引数として渡すには、素晴らしいです。文字通り、同じクラス(ASP.Netのコードビハインドページ)の異なるサブシステムに見える変数が必要な場合は、おそらくプライベートメンバー変数が必要です。アクセス修飾子プライベートを持つサブまたは関数の外部に宣言すると、そのクラスのすべてのサブスレッドがアクセスできます。
Private _foo As String
アンダースコアは、一部の人々が愛し、嫌いな習慣です。あなたはfooというとは明確に異なるようFooのを使用することはできません変数を、公開するプロパティを定義したい場合には、VBで便利ですが、それはまた別の話です。
これは、アプリケーションのコンテキスト全体で変数が表示されるASP.Netの意味で変数グローバル変数で一般的に理解されるものと同じではなく、意図しない結果に向いています。プライベートメンバー変数は、それを所有するクラスだけが見ることができます。
EDIT:最初の回答の後にサンプルコードが追加されました。私のVBは少し錆びですが、あなたがそれを書いたとして、それはsubmitbtn(私が間違っている場合、誰かが私を修正)の内側を含め、クラスレベルの可視性を持つべきであるように、strEmailが見えます。あなたはボタンがクリックされたときにケースされるであろう、ページのロードにポストバックをチェックし、そして唯一の初期ロードではなく、ポストバックにreadDBを呼び出している場合、あなたはをPage_LoadでreadDBを呼び出していることを述べたので、一つの可能性は、あります。ポストバックのチェックが含まれていて、それが何であるか分からない例があったかもしれません(ASP.Netの初心者だと言っていて、新しいことがあればわかりません。意図した犯罪)。
Protected Sub Page_Load (sender as object, e as EventArgs)
If Not IsPostback
// this doesn't get called when the button is clicked so
// strEmail would not be populated when submitbtn is invoked
readDB
End If
End Sub
これは、どこからでも推測されているので、基本的なものではありません。 Page_Load、readDB、およびsubmitbtnにブレークポイントを設定して、それぞれのstrEmailの状態を確認しましたか?
あなたはいくつかのサンプルコードを投稿することができますか? –
@zodeus:vb.netとタグ付けされました –
あなたはどのようにreadDB()を呼び出していますか? –