2017-08-25 42 views
0

設置我目前正在建設使用VB.Net Windows窗體應用程序和正在使用的數據中繼器從一個SQL數據庫視圖中顯示的數據。VB.Net數據中繼器的WinForms - 篩選數據使用參數

我想篩選基於在應用程序內設置一個變量傳入的數據。這可能是一個文本框,下拉控件等,但目前它只是一個VB變量(strSessionID作爲整數)

由於我已經創建了數據集,數據綁定源,表適配器,TableAdaptorManger和綁定導航器拖動數據源那裏的數據中繼器控制似乎沒有任何VB代碼,我可以更新以參數化SQL查詢。

這可能非常簡單,但我習慣於能夠使用查詢構建器在Web表單中執行此操作,該構建器允許您從URL,Cookie等選擇參數值。Winforms似乎沒有相同的功能雖然。

它可能是過濾數據集後填充和刪除我不想使用VB的條目,但我希望能夠修改查詢,以便它不會帶回它所做的數據首先不需要。

任何人都可以建議我是如何最好地做到這一點嗎?

問候

PS我使用VS 2012,如果有差別。

與表單關聯當前VB:

Public Class Process_Selection 

Private Sub LB_INTRO_TEXT_Click(sender As Object, e As EventArgs) Handles LB_INTRO_TEXT.Click 

End Sub 


Private Sub Process_Selection_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    'TODO: This line of code loads data into the 'Process_Config_DataSet.VW_PROCESS_SESSION_OUTPUT_CONFIG' table. You can move, or remove it, as needed. 
    Me.VW_PROCESS_SESSION_OUTPUT_CONFIGTableAdapter.Fill(Me.Process_Config_DataSet.VW_PROCESS_SESSION_OUTPUT_CONFIG) 

End Sub 


Private Sub Process_Selection_Shown(sender As Object, e As EventArgs) Handles Me.Shown 
    LB_PROCESS_ID.Text = DataRepeater1.CurrentItem.Controls(4).Text 
End Sub 

Private Sub DataRepeater1_CurrentItemIndexChanged(sender As Object, e As EventArgs) Handles DataRepeater1.CurrentItemIndexChanged 
    Try 
     LB_PROCESS_ID.Text = DataRepeater1.CurrentItem.Controls(4).Text 
    Catch 
    End Try 

End Sub 

Private Sub BTN_TOGGLE_Click(sender As Object, e As EventArgs) Handles BTN_TOGGLE.Click 
    Call Execute_SQL_Toggle_Inclusion(LB_PROCESS_ID.Text, DataRepeater1.CurrentItem.Controls(0).Text, "PROCESS") 
    'Rebind data repeater 
    Process_Config_DataSet.Clear() 
    VW_PROCESS_SESSION_OUTPUT_CONFIGTableAdapter.Adapter.Fill(Me.Process_Config_DataSet) 
End Sub 

End Class 
+0

你能告訴我們你正在使用的代碼嗎 – GuidoG

+0

@GuidoG我編輯了問題以在當前窗體上顯示VB。問候 – user2916488

+0

有些爲您解讀:[如何:在數據集設計器中打開數據集](https://msdn.microsoft.com/en-us/library/7973zb70.aspx),然後[創建參數化TableAdapter查詢](https: //msdn.microsoft.com/en-us/library/ms171905.aspx)。 – TnTinMn

回答

0

@TnTinMn - 感謝您的參考。

我到底解決這個問題是:1。 ),當我增加了數據轉發和點擊「編輯查詢數據設計師」 2)右鍵點擊了由GUI創建的表適配器上點擊鼠標右鍵在設計器視圖中的表適配器並單擊配置。 3)修改的SQL使得包括一個看起來像一個WHERE子句:WHERE SESSIONID = @SESSION 4)保存的更改,然後更新我的身後形式VB代碼,改變了傳遞字符串,以填補表適配器:

Me.VW_PROCESS_SESSION_OUTPUT_CONFIGTableAdapter.Fill(Me.Process_Config_DataSet.VW_PROCESS_SESSION_OUTPUT_CONFIG)

到:

Me.VW_PROCESS_SESSION_OUTPUT_CONFIGTableAdapter.Fill(Me.Process_Config_DataSet.VW_PROCESS_SESSION_OUTPUT_CONFIG,Module3.intSessionID)

請注意,傳遞給查詢的參數是Module3.intSessionID