2011-01-13 18 views
1

SQLテーブルからWebを取り込みしようとしています。フォームフィールドをSQLから取り込むためのより良い方法は?

これは、私はそれが物事を行うための最善の方法だと、私にアドバイスを与えてくださいわからないけれども、私は、今持っているものです。

Public Class userDetails 
    Public address1 As String 
    Public address2 As String 
    Public city As String 
    ... 
... 
... 
End Class 

Public Class clsPerson 
    'set SQL connection 
    Dim objFormat As New clsFormat 
    Dim objConn As New clsConn() 
    Dim connStr As String = objConn.getConn() 
    Dim myConnection As New Data.SqlClient.SqlConnection(connStr) 

    Public Function GetPersonDetails() As userDetails 
     'connection and all other good stuff here 

     Try 
      ' Execute the command 
      myConnection.Open() 
      dr = myCommand.ExecuteReader() 

      ' Make sure a record was returned 
      If dr.Read() Then 
       ' Create and Populate ApplicantDetails 
       userDetails.address1 = dr("address1") 
       userDetails.address2 = objFormat.CheckNull(dr("address2")) 
       userDetails.city = objFormat.CheckNull(dr("city")) 
       .... 

      Else 
       Err.Raise(4938, "clsUser", "Error in GetUserDetails - User Not Found") 
      End If 

      dr.Close() 
     Finally 
      myConnection.Close() 
     End Try 

     Return userDetails 
    End Function 

私はその後、移入するために私のバックエンドでGetPersonDetails()関数を使用しますフォーム。そのような

は:

Dim userDetails as new userDetails 
userdetails = getPersonDetails() 

txtAddress.text = userdetails.address1 

etc.... 

しかし、そこにユーザーDBで50のフィールドのようなもので、それは再入力の多くのように思える...私はこれを行うには良い方法を見つける助けてください。

ありがとうございました!

答えて

1
  1. Reflectプロパティ名

  2. 推測するプロパティ名からコントロール名、例えば、 "TXT" & fieldNameに

  3. 使用FindControlコントロールを見つけ、そのTextプロパティを移入します。

フィールドを動的に生成することもできますが、プレゼンテーションを何らかの制御を失うこともあります。これは私が使用しない解決策ですが、コードを脆弱にしてデバッグするのが難しくなりがちです。

0

データバインディングは、フォームとデータベース間でデータを移動を支援するために使用されるものです。基本的にフォームフィールドをデータベースフィールドにマップし、一方向(読み込み専用)または両方向(読み書き)で更新するかどうかを制御できます。あなたはおそらくまだ各フィールドをマッピングするステートメントを持っていますが、時にはより簡単なものになります。それはあなたが基本以上の何かをしようとするとはるかに複雑になるものの一つですが、それは非常にモジュール化されているので、それはほとんど常に適合させることができ、あなたが構築する動作を変更したり、独自のクラス/インタフェースを実装することができますより複雑なシナリオのためのソリューション。

下部に「続きを読む」リンクがあります。 http://www.startvbdotnet.com/ado/simplebinding.aspx

関連する問題