vbNewbie2009
asked on
Unable to filter Dataset
I'm having a difficult time grasping how I can filter data in a datatable using the Select method and then populate a combobox. I've created a Private Dataset for my form that I populate on form Load. Then when my routine runs to fill a combobox based off that I want to perform a Select against the table in the dataset but keep getting the error below. I've attached the code as I have it...any help would be most appreciated.
Problem responseChkBoxEvents: --Message:Cannot bind to the new display member. Parameter name: newDisplayMember--StackTra ce: at System.Windows.Forms.ListC ontrol.Set DataConnec tion(Objec t newDataSource, BindingMemberInfo newDisplayMember, Boolean force) at System.Windows.Forms.ListC ontrol.set _ValueMemb er(String value) at RxAssess.DynamicForm.respo nseChkBoxE vents(Obje ct sender, EventArgs e) in C:\Programming\DynamicForm .vb:line 629--TargetSite:Void SetDataConnection(System.O bject, System.Windows.Forms.Bindi ngMemberIn fo, Boolean)
Problem responseChkBoxEvents: --Message:Cannot bind to the new display member. Parameter name: newDisplayMember--StackTra
Public Class DynamicForm
Private dsNCICriteria As New DataSet
Private Sub DynamicForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Capture data for NCI Criteria Combo Boxes
Dim conStringNCICriteria As String = "removed string;"
Dim strSQLNCICriteria As String = "select ntypeid,grade,cast(grade as nvarchar) + ' - ' + description as description " + _
"from nci_criteria"
Dim conNCICriteria As New SqlConnection(conStringNCICriteria)
Dim daNCICriteria As New SqlDataAdapter(strSQLNCICriteria, conNCICriteria)
daNCICriteria.Fill(dsNCICriteria, "NCICriteria")
daNCICriteria.Dispose()
conNCICriteria.Close()
conNCICriteria = Nothing
strSQLNCICriteria = Nothing
conStringNCICriteria = Nothing
End Sub
Sub responseChkBoxEvents(ByVal sender As System.Object, ByVal e As System.EventArgs)
If chk.Checked = True Then
If chk.Name.Substring(chk.Name.LastIndexOf("N") + 1) <> 0 Then
Dim nciTypeID As String = chk.Name.Substring(chk.Name.LastIndexOf("N") + 1)
Dim nciFilter As String
nciFilter = "ntypeid = " + chk.Name.Substring(chk.Name.LastIndexOf("N") + 1)
Dim cbo As ComboBox = TryCast(Me.Controls(Replace(Replace(chk.Name, "CHK", "NCICBO"), "L" + z.ToString, "L" + (z + 1).ToString)), ComboBox)
With cbo
.DataSource = dsNCICriteria.Tables("NCICriteria").Select(nciFilter)
.DisplayMember = "description"
.ValueMember = "grade"
.Visible = True
.SelectedItem = Nothing
.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
.AutoCompleteMode = AutoCompleteMode.Append
End With
End If
End Sub
can you print out the value of nciFilter?
ASKER
Thanks CodeCruiser I will give that a try an about an hour.
Emoreau: The value of nciFIlter is "ntypeid = 5"
Emoreau: The value of nciFIlter is "ntypeid = 5"
ASKER
CodeCruiser: That works, i just had to put the first row outside the With clause and remove the dot. Was that your intent? I'm noticing that other checkBox events associated with populating comboBoxes all fire properly too. The comboBoxes all share the same drop down values though. Can the filter results be assigned to each comboBox individually or is this just a limitation?
Based on your suggestion I think I've misunderstood the whole Table Select method; I thought if I select just a certain number of items from a table and associated that with the combobox those values would be; somewhat added to just that combobox.
Based on your suggestion I think I've misunderstood the whole Table Select method; I thought if I select just a certain number of items from a table and associated that with the combobox those values would be; somewhat added to just that combobox.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Extremely helpful; thank you very much for the help and explanation!!!
Glad to help :-)
.DataSource = dsNCICriteria.Tables("NCIC
with
.dsNCICriteria.Tables("NCI
.DataSource = dsNCICriteria.Tables("NCIC