- - PR -
クラスの変数について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-10-08 13:21
さんと申します。(初心者)
VB.NETとADO.NETでDBの汎用アクセスクラスを作成しています。 各関数は、インターフェースで公開しています。 テスト用のコンソールアプリから クラスのインスタンスをNEWで生成して、 クラスのDB接続関数(DB_CONNECT())で m_Connection = New SqlConnection("接続文字列") m_Connection.Open() 接続して、 m_Connection.state=1を接続を確認しています。 次に、参照関数のDB_SELECT()を呼び出して、m_Connection.stateを確認すると "オブジェクト参照がオブジェクト インスタンスに設定されていません。" エラーになってしまいます。 m_Connectionは、 クラスの先頭で Dim m_Connection As SqlConnection と宣言しています。 DB_CONNECT()で作成したm_Connectionを DB_SELECT()で参照するには、どのように したらよいか、 または、チェックポイントを 教えて頂けないでしょうか? |
|
投稿日時: 2004-10-08 13:42
m_Connection が属するクラスと、
DB_SELECT() メソッドが属するクラスは別々ということでしょうか? |
|
投稿日時: 2004-10-08 13:45
m_ConnectionとDB_SELECT() メソッドは、同じクラス内に
宣言しています。 |
|
投稿日時: 2004-10-08 13:51
Webアプリで
DB_CONNECT() と DB_SELECT() が別リクエストってことはないですよね? |
|
投稿日時: 2004-10-08 14:00
いろいろありがとうございます。
説明不足で申し訳ありませんが、 DB_CONNECT()を呼び出しているメインは、コンソールアプリです。 Webアプリと申されているのは、ASP.NETことかと 思いますが、使用しておりません。 あと、DB_select()内でADO,NETのcommanndオブジェクトを使用して、 ExecuteReader()を使用とすると、 ”commanndオブジェクトのプロパティが初期化されいません”の メッセージが表示され、 DB_select()の最初で 接続を確認するために、MessageBox.Show(m_Connection.State)を 実行すると"オブジェクト参照がオブジェクト インスタンスに設定されていません。" なります。 最初にお話しなくて申し訳ありません。 |
|
投稿日時: 2004-10-08 14:22
Mickyでございます。
みなさま、いつもお世話になっております。 えっと、クラスの内部より、 作成したクラスを使っている側(Callしている側)は どうなっていますか? DB_CONNECT()を呼び出す時と、 DB_SELECT()を呼び出す時とで、 同じインスタンスを使ってますでしょうか? |
|
投稿日時: 2004-10-08 14:29
コールしている側は
Sub Main() Dim test As New AAA Dim I As IControl I = test I.DB_Connect() I.DB_select("select * from bbb") I.DB_Disconnect() End Sub で、同じインスタンスで呼び出しています。 |
|
投稿日時: 2004-10-08 19:11
みなさん、いろいろありがとうごます。
原因がわかりました。 クラスの先頭であるCOM+をInheritsで継承していて それをはずすと、正常に動きました。 このCOM+は、他人が作って、ソースが ないので何をやっているかは、わかりません。 が、このCOM+を継承すると、m_Connectiont等の変数が nothingになってしまいます。 一応、ご報告まで!! |
1