2017-08-25 50 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