1

私は自分の 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

エティエンヌ

4

4 に答える 4

2

クラスは(VB.Netで)そう定義されています

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

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

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

dim IsHomeRunHit As Boolean = p.HitHomeRun()

VB.Net でのクラスの作成と使用の詳細については、こちらをご覧ください。

これは非常に大きなトピックであり、さまざまな方法で定義できます。しかし、通常、あなたが挑戦しようとしているのは N 層アーキテクチャです。

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

これで、質問でクラスを構築できる方法を実行できますが、長期的には、メンテナンスの恐怖が発生しやすく、変更可能性が短くなります。言うまでもなく、バグが非常に発生しやすいです。UI レイヤーに任意のタイプのデータ アクセス コードを配置することは、悪い習慣です。

これは、各レイヤーに個別のクラスのレイヤー (関心の分離) を持たせることで、コードを再利用する機能と、将来の拡張/機能などのために簡単に変更する機能を提供する場所です。 1つの投稿に入れます。

ただし、本当に興味がある場合は、正しい方向に導くためのリンクがいくつかあります。

  1. ウィキペディアの N 層アーキテクチャ
  2. データ アクセス層
  3. ビジネスロジックレイヤー
  4. マーティン・ファウラーは建築の専門家です

DAL の苦痛を和らげるソフトウェアがあります。
1. .Net オブジェクト (コンパイル済みクエリ) を介してデータをクエリするLinq-To-SQL
機能 2. Linq-To-SQL のエンティティ フレームワーク バージョン 2

これにより、すべての SQL コードを効果的に置き換えることができます。

于 2009-03-28T18:40:44.697 に答える
0

Visual Studio Designer ツールを使用してデータ アクセスとデータ バインディングを行うことを検討する必要があると思います。型指定されたデータセットを検索する

于 2009-03-29T16:28:04.523 に答える
0

私は時々「共通」クラスを作成し、さまざまな場所から呼び出したい public Shared メソッドをそこに入れます。

これらの行に沿ったもの:

Public Class Common

Public Shared Sub MyMethod
  'Do things.
End Sub

End Class

次に、次を使用して呼び出します。

Common.MyMethod

明らかに、必要なパラメーターを取るサブ/関数定義を作成できます。

私のVB.NETコードが少しずれている場合は申し訳ありません。私は通常C#を使用します。

于 2009-03-28T18:32:06.447 に答える