【问题标题】:VB.Net Data Repeater Winforms - Filter data set using parameterVB.Net Data Repeater Winforms - 使用参数过滤数据集
【发布时间】:2017-08-25 14:53:06
【问题描述】:

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

我想根据应用程序中设置的变量过滤传入的数据。这可能是一个文本框、下拉控件等,但目前它只是一个 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

【问题讨论】:

标签: .net vb.net winforms


【解决方案1】:

@TnTinMn - 感谢您的参考。

我最终通过以下方式解决了这个问题: 1.) 在我添加数据转发器时右键单击由 GUI 创建的表适配器,然后单击“在数据设计器中编辑查询” 2.) 右键单击​​设计器视图中的表适配器并单击配置。 3.) 修改了 SQL,以便包含一个 WHERE 子句,如下所示: 其中会话 ID = @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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 2023-04-04
    • 2018-01-07
    相关资源
    最近更新 更多