- PR -

【ASP.NET2.0】基本クラス

投稿者投稿内容
りんご
会議室デビュー日: 2006/10/07
投稿数: 9
投稿日時: 2006-11-15 14:27
こんにちは。

現在ASP.NET2.0(VB.NET)で開発を行っているものです。
早速ですが質問させていただきたいと思います。

基本クラス−派生クラスの関係でページを作成しているのですが、
派生クラスから別クラスの処理を行いたいのです。
ですが、その処理の関連で基本クラスにあるメンバの値を使いたいのですが、
どのように関連付ける(と表現していいのでしょうか・・・)のかがわからないのです。

   (基本クラス)
     |_(派生クラス)−−−>(共通集計処理クラス)
                      ↑ここで基本クラスのメンバの値を使いたい

使いたい基本クラスのメンバの値を、派生クラスで取得して共通集計処理クラスへ
値渡しするのか、またはもっと便利なやり方があるのかご存知の方がいらっしゃいましたら
ご教授願います。

よろしくお願いいたします。

どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-11-15 14:40
基本−派生の関係でしたら、派生クラスは基本クラスのすべてのメンバを含んで
いるはずですから、直接その値を使えばよいのでは?
りんご
会議室デビュー日: 2006/10/07
投稿数: 9
投稿日時: 2006-11-15 14:53
どっとねっとふぁんさん、書き込みありがとうございます。

派生クラスから基本クラスのメンバの値や関数は使用できるのは理解しており、
実際にMyBase.XXXXなどと指定して処理を行っています。

今回の件は、その派生クラスから別のクラスをCallしつつ、さらにその関数から基本クラス
の関数をCallしている部分でエラーになるのです。
DBに対する処理なので、コネクションの情報などが必要なので基本クラスにあるその値を使いたいのですが・・・。

そもそもクラスの作成の仕方が悪いのか、わからなくなってきました。
想馬
大ベテラン
会議室デビュー日: 2003/05/29
投稿数: 245
お住まい・勤務地: 神奈川・東京
投稿日時: 2006-11-15 15:03
単に「エラー」ではなく、どのようなエラーなのか具体的に(エラーの内容とか)書いた方が答えてくれる人も答えやすいと思いますよ。
文字だけで相手に伝えるのは難しいけど大事な能力です。

# ご教授についてはもう諦めた、「ホームページ」と似たようなものなんだろう・・・
_________________
己への戒め

「活動的な馬鹿より恐ろしいものはない」 by ゲーテ
りんご
会議室デビュー日: 2006/10/07
投稿数: 9
投稿日時: 2006-11-15 15:14
想馬さん、書き込みありがとうございます。

おっしゃる通り、具体的に説明します。

【構成とやりたい事】
基本クラス−派生クラスの関係から、別のクラスの処理を使用し、かつその中で基本クラスの
処理が必要な処理

【基本クラスで使用したいもの】
 メンバ−DB接続用のコネクション
 処 理−データ取得処理(DB接続用のコネクション使用)

【派生クラスから呼んでいる共通集計クラスで発生するエラー内容】
 「Connectionは初期化していません」
  ⇒DBの接続コネクションが作成されていないため

       継 承
  基本クラス------派生クラス
    ↑       ↓オブジェクトを作成して処理関数をCall
    |_____共通集計クラス
     この基本クラスの処理をCallしている所でConnection初期化エラー
     ※Connectionは基本クラスのメンバ
     
よろしくお願いいたします。





どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-11-15 15:37
一般的な言葉を使おうとしすぎるあまり、状況がよくわからない、という感じですね。
具体的なソースコードを(できるだけ短くして)貼ったほうが他の人には理解して
もらえるかも。

koj
会議室デビュー日: 2003/06/23
投稿数: 5
投稿日時: 2006-11-15 15:44
インスタンスの概念が希薄な予感
りんご
会議室デビュー日: 2006/10/07
投稿数: 9
投稿日時: 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

よろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)