2009-03-28 9 views
1

私は自分のASP.NETを知っていますが、私はクラスを馬鹿にしていて、正確に動作するかどうかはわかりません。また、まだ彼らと一緒に働いていないが、私はしたい。しかし、私が知っているのは、再利用のためのコードを正しく保管できる場所だということです。私のクラスはどのように私のコードで見えますか?ASP.NETでクラスを呼び出す

これは私が約3つのフォームで使用しているコードですが、1つの場所に保存して、btnSubmitをクリックしたときのように呼び出すようにしたいと思います。

Dim strConnection As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString 
    Dim con As SqlConnection = New SqlConnection(strConnection) 
    Dim cmd As SqlCommand = New SqlCommand 
    Dim objDs As DataSet = New DataSet 
    Dim dAdapter As SqlDataAdapter = New SqlDataAdapter 

    cmd.Connection = con 
    cmd.CommandType = CommandType.Text 
    cmd.CommandText = "SELECT distinct FIELD FROM TABLE order by FIELD" 

    dAdapter.SelectCommand = cmd 
    con.Open() 
    dAdapter.Fill(objDs) 
    con.Close() 

    If (objDs.Tables(0).Rows.Count > 0) Then 

     lstDropdown.DataSource = objDs.Tables(0) 
     lstDropdown.DataTextField = "FIELD" 
     lstDropdown.DataValueField = "FIELD" 
     lstDropdown.DataBind() 
     lstDropdown.Items.Insert(0, "Please Select") 
     lstDropdown2.Items.Insert(0, "Please Select") 

    Else 

     lblMessage.Text = "* Our Database seem to be down!" 

    End If 

ここで自分のコードを実行するにはどうすればよいですか?

Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click 

    ????????????????????????????????? 

    End Try 

End Sub 

エティエンヌ

答えて

0

私は時々、「一般的な」クラスを作成し、私は別の場所から呼び出したいということで、公共の共有方法を置きます。これらの線に沿って

何か:

Public Class Common 

Public Shared Sub MyMethod 
    'Do things. 
End Sub 

End Class 

私は、使用してそれを呼びたい:

明らか
Common.MyMethod 

を、あなたが必要なパラメータを受け取り、サブ/関数定義することができます。

申し訳ありませんが、私のVB.NETコードは少しオフです。私は通常C#を使用します。

2

クラスは、あなたはその後、クラスをインスタンス化し、そのメンバーを呼び出すことができますので、

Public Class Person 

private _firstName as string 
private _lastName as string 

'''Constructor with no params 
public Sub New() 
    _firstName = "" 
    _lastName = "" 
End Sub 

'Contructor with params 
Public Sub New(FirstName as String, LastName as String) 
    _firstName = FirstName 
    _lastName = LastName 
End Sub 

Public Property FirstName As String 
Get 
    return _firstName 
End Get 
Set(value as String) 
    _firstName = value 
End Set 
End Property 

Public Property LastName As String 
    Get 
     return _lastName 
    End Get 
    Set(value as String) 
     _lastName = value 
    End Set 
    End Property 

Public Function HitHomeRun() As Boolean 
    ....'Do some stuff here 
End Function 
End Class 

として定義されている(VB.Netで)です。

Dim p as New Person() 
p.FirstName = "Mike" 
p.LastName = "Schmidt" 

dim IsHomeRunHit As Boolean = p.HitHomeRun() 

Learn more about creating and consuming classes in VB.Net.

これは非常に大きな話題であり、多くの異なる方法で定義することができます。しかし、典型的には、N-Tierアーキテクチャです。

データアクセス層
ビジネスロジック
UIロジック

今のクラスは、あなたの質問に構築することができます方法が行われますが、長期的にメンテナンス恐怖とmodifiiabilityの傾向があることができるが短くカットされます。バグの原因となることはあまりありません。あらゆるタイプのデータアクセスコードをUIレイヤに配置するのは悪い習慣です。

これは、各レイヤーで別々のクラスレイヤー(懸念の分離)を持つことができるため、コードを再利用して将来の拡張/機能などを簡単に変更できるようになります。 1つの投稿に入れるための非常に広いトピック。

本当に興味があるのなら、正しい方向を指すリンクがいくつかあります。

  1. N-Tier Architecture from Wikipedia
  2. Data Access Layer
  3. Business Logic Layer
  4. Martin Fowler is an expert in Architecture

DALの痛みを緩和するソフトウェアがあります。
1. Linq-To-SQL .NETオブジェクトを経由してデータを照会する機能(コンパイルされたクエリ)LINQのツーSQL


2. Entity Frameworkバージョン2と、これは効果的にあなたのSQLコードのすべてを置き換えることができます。

1

コードを再利用する場合は、別のプロジェクトに配置する必要があります。そうすれば、そのプロジェクトをさまざまなソリューションに追加することができます(あるいは、コンパイルされたdllを参照するだけです)。

Webプロジェクトでは、プロジェクトへの参照を追加します(以前にコンパイルしていて、ソリューションにプロジェクトを追加したくない場合はdllに追加します)。

新しいプロジェクトには、クラスファイル(たとえば、UIHelperという名前)を追加します。あなたのために作成されたクラススケルトンでは、メソッドを追加します。クラスは別のプロジェクトであるとして、それは、ページ内のコントロールについて知らないので、あなたは、メソッド呼び出しのものへの参照を送信する必要があります:あなたはを参照してそれを呼び出すあなたのページで

Public Shared Sub PopulateDropdowns(lstDropdown As DropDownList, lstDropdown2 As DropDownList) 

    ... here goes your code 

End Sub 

ページに表示されるドロップダウンリスト:

UIHelper.PopulateDropdowns(lstDropdown, lstDropdown2) 

これはあなたを始めます。クラスを使用することについてもっと学ぶべきことがたくさんあります。

0

私は、ビジュアルスタジオデザイナーツールを使用してデータアクセスとデータバインディングを調べるべきだと思います。型付きデータセットを検索する

関連する問題