Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 仅从绑定源中选择要显示在组合框中的某些值_.net_Vb.net_Data Binding_Combobox - Fatal编程技术网

.net 仅从绑定源中选择要显示在组合框中的某些值

.net 仅从绑定源中选择要显示在组合框中的某些值,.net,vb.net,data-binding,combobox,.net,Vb.net,Data Binding,Combobox,我试图操纵一个组合框,以仅显示我希望从绑定源中获得的某些值。这是我目前拥有的代码 provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =" datafile = "C:\Users\Jacob\Desktop\Halton\HaltonProject.accdb" connString = provider & datafile myConnection.ConnectionString = con

我试图操纵一个组合框,以仅显示我希望从绑定源中获得的某些值。这是我目前拥有的代码

 provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
    datafile = "C:\Users\Jacob\Desktop\Halton\HaltonProject.accdb"
    connString = provider & datafile
    myConnection.ConnectionString = connString
    myConnection.Open()

    Dim str As String
    str = "SELECT * FROM [Employee] WHERE (SP_Level <>  0)"
    Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
    Dim dr As OleDbDataReader = cmd.ExecuteReader


    Dim Full_Name As String

    While dr.Read
        Full_Name = dr("Full_Name").ToString
        SP_Emp1.Items.Add(Full_Name)
        SP_Emp2.Items.Add(Full_Name)
        SP_Emp3.Items.Add(Full_Name)
        SP_Emp4.Items.Add(Full_Name)
    End while
provider=“provider=Microsoft.ACE.OLEDB.12.0;数据源=”
datafile=“C:\Users\Jacob\Desktop\Halton\HaltonProject.accdb”
connString=提供程序和数据文件
myConnection.ConnectionString=connString
myConnection.Open()
作为字符串的Dim str
str=“从[Employee]中选择*,其中(SP_级别0)”
Dim cmd As OleDbCommand=新的OleDbCommand(str,myConnection)
作为OleDbDataReader=cmd.ExecuteReader的Dim dr
将全名变暗为字符串
当雷德博士
全名=博士(“全名”)。ToString
SP_Emp1.Items.Add(全名)
SP_Emp2.Items.Add(全名)
SP_Emp3.Items.Add(全名)
SP_Emp4.Items.Add(全名)
结束时
目前,此代码查看“SP_级别”,并筛选出其中列出“0”的所有员工。字符串“Full_Name”返回在“SP_Level”列中列为“0”以外的所有员工

我想让combobox数据绑定到EmployeeBindingSource,同时只显示由上述代码生成的新过滤的“Full_Name”字符串。我尝试过过滤bindingsource,但只返回要匹配的第一个字母字符串,然后停止。我相信有一个简单的解决办法,我就是找不到


我对VB编程相当陌生,因此,如果这篇文章措词不当,我深表歉意。如果我能更好地解释什么,请告诉我。

对于每一行/技能集,您可以拥有/使用相同的
数据源,您只需要对每一行/技能集进行相应的筛选。这将为每个条件创建一个
DataView
,而不是手动从源中筛选出一些条件,或者使用新查询仅创建稍微不同的源:

' my fake table
Dim colors As String() = {"Red", "Green", "Blue", "Orange", "White"}
Dim dt As New DataTable
dt.Columns.Add("color", GetType(String))

For Each s As String In colors
    dt.Rows.Add(s)
Next

' create a view for each level and bind it
Dim SPView As New DataView(dt, "Color <> 'Red'", "", DataViewRowState.CurrentRows)
ComboBox1.DataSource = SPView
ComboBox1.DisplayMember = "color"

Dim XPView As New DataView(dt, "Color <> 'Green'", "", DataViewRowState.CurrentRows)
ComboBox2.DataSource = XPView
ComboBox2.DisplayMember = "color"

Dim ZPView As New DataView(dt, "Color <> 'Blue'", "", DataViewRowState.CurrentRows)
ComboBox3.DataSource = ZPView
ComboBox3.DisplayMember = "color"
“我的假表
颜色暗淡,如字符串()={“红色”、“绿色”、“蓝色”、“橙色”、“白色”}
Dim dt作为新数据表
添加(“颜色”,GetType(字符串))
对于每种颜色的字符串
dt.行。添加(s)
下一个
'为每个级别创建一个视图并将其绑定
Dim SPView作为新数据视图(dt,“颜色‘红色’”,DataViewRowState.CurrentRows)
ComboBox1.DataSource=SPView
ComboBox1.DisplayMember=“颜色”
将XPView变暗为新的DataView(dt,“颜色为绿色”,DataViewRowState.CurrentRows)
ComboBox2.DataSource=XPView
ComboBox2.DisplayMember=“颜色”
Dim ZPView作为新的数据视图(dt,“颜色'蓝色'”,DataViewRowState.CurrentRows)
ComboBox3.DataSource=ZPView
ComboBox3.DisplayMember=“颜色”

SP\U级别是字符串吗?没有理由把它连在一起。它只是
其中(SP_级别0)
您的循环没有什么意义。userFound和Full_Name将仅是循环中的最后一项,除非您没有向我们显示所有内容。每行表示一个新的筛选器
SP>0
PB>0
等。您可以为每个条件创建不同的视图并绑定到该视图,而不是试图让一个源代码来执行此操作。像这样的多种技能应该是一张1:m的桌子。谢谢你的提示。我修改了OP以显示我最初尝试的内容,它确实以我希望的方式填充组合框,但显然它不能被数据绑定并允许以编程方式更改值。钚-没错,我必须对每个场景进行过滤。我不确定我是否理解你的建议,但是,我很抱歉,谢谢你,我在这件事上坚持了很长一段时间。我希望这只是一些我以前从未见过/听说过的新语法!我非常感激,祝你度过余下的一天。