2011-01-13 43 views
1

我想從一個SQL表填充一個網頁。從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」 &字段名

  3. 使用FindControl找到控制和填充它的Text屬性。

您也可以動態生成這些字段,儘管您失去了對演示文稿的一些控制。這是我不會使用的解決方案,但它往往會使代碼變得脆弱而難以調試。

0

數據綁定是用來幫助在表單和數據庫之間移動數據的東西。基本上,您可以將表單字段映射到數據庫字段,並可以控制它是在一個方向(只讀)還是兩個方向(讀/寫)刷新。你可能仍然會有一個映射每個字段的語句,但它有時會讓事情變得更簡單。如果您嘗試做的不僅僅是基礎知識,那麼這些東西就會變得更加複雜,但它幾乎總是可以適應的,因爲它是非常模塊化的,允許您修改行爲或實現自己的類/接口來構建解決更復雜的情況。

請注意底部有一個「繼續閱讀」鏈接: http://www.startvbdotnet.com/ado/simplebinding.aspx