VB.Net Data Repeater Winforms - 使用参数过滤数据集

时间:2017-08-25 14:53:06

标签: .net vb.net winforms

我目前正在使用VB.Net构建一个Windows窗体应用程序,并且正在使用数据转发器来显示SQL数据库中视图的数据。

我想根据应用程序中的变量集过滤传入的数据。这可能是一个文本框,下拉控件等,但目前它只是一个VB变量(strSessionID为整数)

由于我已经通过将数据源拖动到数据转发器控件中创建了数据集,数据绑定源,表适配器,TableAdaptorManger和Binding Navigator,因此似乎没有任何VB代码可以更新以参数化SQL查询。

这可能非常简单,但我习惯于使用查询构建器在webforms中执行此操作,该构建器允许您从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

1 个答案:

答案 0 :(得分:0)

@TnTinMn - 感谢您的推荐。

我最终通过以下方式解决了这个问题: 1.)当我添加数据转发器并单击"在数据设计器中编辑查询时,右键单击GUI创建的表适配器" 2.)在设计器视图中右键单击表适配器,然后单击configure。 3.)修改了SQL,以便包含一个看起来像这样的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