- - PR -
【ASP.NET2.0】基本クラス
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-11-15 14:27
こんにちは。
現在ASP.NET2.0(VB.NET)で開発を行っているものです。 早速ですが質問させていただきたいと思います。 基本クラス−派生クラスの関係でページを作成しているのですが、 派生クラスから別クラスの処理を行いたいのです。 ですが、その処理の関連で基本クラスにあるメンバの値を使いたいのですが、 どのように関連付ける(と表現していいのでしょうか・・・)のかがわからないのです。 (基本クラス) |_(派生クラス)−−−>(共通集計処理クラス) ↑ここで基本クラスのメンバの値を使いたい 使いたい基本クラスのメンバの値を、派生クラスで取得して共通集計処理クラスへ 値渡しするのか、またはもっと便利なやり方があるのかご存知の方がいらっしゃいましたら ご教授願います。 よろしくお願いいたします。 |
|
投稿日時: 2006-11-15 14:40
基本−派生の関係でしたら、派生クラスは基本クラスのすべてのメンバを含んで
いるはずですから、直接その値を使えばよいのでは? |
|
投稿日時: 2006-11-15 14:53
どっとねっとふぁんさん、書き込みありがとうございます。
派生クラスから基本クラスのメンバの値や関数は使用できるのは理解しており、 実際にMyBase.XXXXなどと指定して処理を行っています。 今回の件は、その派生クラスから別のクラスをCallしつつ、さらにその関数から基本クラス の関数をCallしている部分でエラーになるのです。 DBに対する処理なので、コネクションの情報などが必要なので基本クラスにあるその値を使いたいのですが・・・。 そもそもクラスの作成の仕方が悪いのか、わからなくなってきました。 |
|
投稿日時: 2006-11-15 15:03
単に「エラー」ではなく、どのようなエラーなのか具体的に(エラーの内容とか)書いた方が答えてくれる人も答えやすいと思いますよ。
文字だけで相手に伝えるのは難しいけど大事な能力です。 # ご教授についてはもう諦めた、「ホームページ」と似たようなものなんだろう・・・ _________________ 己への戒め 「活動的な馬鹿より恐ろしいものはない」 by ゲーテ |
|
投稿日時: 2006-11-15 15:14
想馬さん、書き込みありがとうございます。
おっしゃる通り、具体的に説明します。 【構成とやりたい事】 基本クラス−派生クラスの関係から、別のクラスの処理を使用し、かつその中で基本クラスの 処理が必要な処理 【基本クラスで使用したいもの】 メンバ−DB接続用のコネクション 処 理−データ取得処理(DB接続用のコネクション使用) 【派生クラスから呼んでいる共通集計クラスで発生するエラー内容】 「Connectionは初期化していません」 ⇒DBの接続コネクションが作成されていないため 継 承 基本クラス------派生クラス ↑ ↓オブジェクトを作成して処理関数をCall |_____共通集計クラス この基本クラスの処理をCallしている所でConnection初期化エラー ※Connectionは基本クラスのメンバ よろしくお願いいたします。 |
|
投稿日時: 2006-11-15 15:37
一般的な言葉を使おうとしすぎるあまり、状況がよくわからない、という感じですね。
具体的なソースコードを(できるだけ短くして)貼ったほうが他の人には理解して もらえるかも。 |
|
投稿日時: 2006-11-15 15:44
インスタンスの概念が希薄な予感
|
|
投稿日時: 2006-11-15 16:09
みなさま書き込みありがとうございます。
ソースコードは以下のようになっています。 基本クラス:clsGL_Common 派生クラス:frmInput_02 派生クラスの処理 Partial Class frmInput_02 : Inherits clsGL_Common Private Function funKinmuDataReg(ByVal bytShoriType As Byte, ByVal dtTable As DataTable) As Boolean Dim tShukei As New clsGL_TotalData '// 集計データ格納用 Try '// 明細データ登録処理 If funMeisaiDataReg(bytShoriType, sqlCommand, sqlTran, dtTable) = False Then Exit Function End If '// 集計データ登録処理 If tShukei.funTotalDataMake(dtTable, tShukei) = False Then Exit Function End If Catch ex As Exception throw ex Finally tShukei=nothing End Try End Function End Class 共通集計処理クラス Public Class clsGL_TotalData Public Function funTotalDataMake(ByVal dtTable As DataTable, _ ByVal tShukei As clsGL_TotalData) As Boolean Dim dsTimeTable As DataSet '// タイムマスタデータ格納用 Dim dsKiteiTime As DataSet '// 規定時間用 '// 集計用データ取得処理 dsTimeTable = MyBase.GL_funSelMaster() '// タイムマスタ dsKiteiTime = MyBase.GL_funSelKiteiTimeMatchMstData() '// 規定時間とタイムマスタの合体 ・ ・ ・ End Class 基本クラス Public Class clsGL_Common : Inherits System.Web.UI.Page Private objConn As New SqlConnection() '// コネクション Private objCommand As New SqlCommand '// コマンド Public Function GL_funSelMasterTime() As DataSet Dim strSQL As New StringBuilder With strSQL .Append("SELECT ") .Append(" *") .Append("FROM ") .Append(" M_TIME ") .Append("ORDER BY ") .Append(" TIME_NO") End With Try '// データ取得 Return GL_funGetDataSet(strSQL) Catch ex As Exception Session("Err_Place") = "clsGL_Common:GL_funSelMasterTime" Throw ex Finally strSQL = Nothing End Try End Function '共通−データセット 'この処理の中でobjConnという基本クラスのメンバの情報を使用している Public Function GL_funGetDataSet(ByVal strSQL As StringBuilder) As DataSet Dim objDs As New DataSet() Try Dim objAdp As New SqlDataAdapter(strSQL.ToString, objConn) objAdp.Fill(objDs) Return objDs Catch ex As Exception Throw ex Finally objDs = Nothing End Try End Function End Class よろしくお願いします。 |