2012-11-02 43 views
0

使用VB.Net如何調用表中的值,而不會影響性能

我想通過函數來​​獲取表值

功能以檢索表中的值

Function GetFsDtValue(ByVal value As Integer) As String 
     Dim conObjects As New ConnectionObjects 
     conObjects.OpenConnection() 

      Dim objDataAdapter As New SqlDataAdapter("Select * from table1", conObjects.myConnection) 
      Dim pobjDS As New DataSet("Result") 
      If Not IsNothing(objDataAdapter) Then 
       objDataAdapter.Fill(pobjDS) 
       objDataAdapter.Dispose() 
      End If 
      If pobjDS.Tables.Count > 0 AndAlso pobjDS.Tables(0).Rows.Count > 0 Then 
       GetFsDtValue = pobjDS.Tables(0).Rows(0).Item(value) 
      Else 
       GetFsDtValue = "" 
      End If 

     End Try 
    End Function 

我打電話上面的功能好多次就好像

txtbox1.Text = GetFsDtValue(7) 
txtbox2.Text = GetFsDtValue(8) 

每次我調用這個函數,它都會l再次打開連接並將數據表保存在數據集中,這會影響性能。任何其他替代方法

like

我想通過函數調用表值。怎麼辦呢

需要vb.net代碼幫助

+0

是否將所有信息存儲在程序中的一個選項?如果是這樣的話,最好將它全部保存在表格中(yuck)或者創建一個可以表示列表中每行的類(yay)。無論您採取哪種方式,您都可以從軟件而不是數據庫獲取信息。 =快得多。 – WozzeC

+0

哦,沒有正確閱讀......很明顯,你可以將所有數據存儲在軟件中... – WozzeC

回答

1

創建您做到這一點的函數,調用它FetchData或東西:

Dim conObjects As New ConnectionObjects 
     conObjects.OpenConnection() 

      Dim objDataAdapter As New SqlDataAdapter("Select * from table1", conObjects.myConnection) 
      _pobjDS As New DataSet("Result") 
      If Not IsNothing(objDataAdapter) Then 
       objDataAdapter.Fill(pobjDS) 
       objDataAdapter.Dispose() 
      End If´ 

讓pobjDS是這樣的一個全局變量:

private _pobjDS as DataSet 

在GetFsDtValue做到這一點:

Function GetFsDtValue(ByVal value As Integer) As String 

      If _pobjDS.Tables.Count > 0 AndAlso _pobjDS.Tables(0).Rows.Count > 0 Then 
       GetFsDtValue = _pobjDS.Tables(0).Rows(0).Item(value) 
      Else 
       GetFsDtValue = "" 
      End If 

     End Try 
    End Function 

And voila seez fixed

+0

顯示錯誤,因爲表達式不是pobjDS中的方法 – Gopal

+0

對不起。我錯過了一個podjDS。只需將它們全部編輯爲_podjDS即可 – WozzeC

相關問題