0

App_code フォルダーにクラス モジュールがあります。

Private _connection As MySqlConnection
Private _connStr As String

Public Function Connect(dbName As String) As Boolean
    Try
        _connStr = "Database=" & dbName & ";" & _
                "Data Source=192.16.0.1;" & _
                "User Id=user;Password=pass"
        _connection = New MySqlConnection(_connStr)
        _connection.Open()
        _connection.Close()
        Return True
    Catch ex As Exception
        _connection = Nothing
        Return False
    End Try
    Return False
End Function

私は通常、Web フォーム アプリでプログラミングします。aspx コード ビハインド ページからこの関数にアクセスできないのはなぜですか? クラスの import ステートメントを追加しました。その関数を共有すると、それらのプライベート変数を持つことはできません。

aspx likで関数を呼び出します。

If Connect(dbName) then....

「非共有メンバーにはオブジェクト参照が必要です」というエラーが表示されます

4

2 に答える 2

1

次のように、キーワード「Shared」をメソッド シグネチャに追加する必要があります。

Private Shared _connection As MySqlConnection
Private Shared _connStr As String
Public Shared Function Connect(dbName As String) As Boolean

これは、それ以外の場合、静的メンバーではなくインスタンス クラス メンバーがあるためです。コンパイラのエラー メッセージは一目瞭然です。

于 2012-09-07T19:30:09.963 に答える
1

この例を見るとうまくいきます:

   Public Shared Function example123(ByVal USER As Integer, ByVal Section As String,   ByVal ACTION As String) As Boolean

クラスの外から見えるように、共有された関数を割り当てます

私はあなたが働くことを願っています

于 2012-09-07T19:37:20.357 に答える