Vb.net 在下拉列表中选择第一个选项

Vb.net 在下拉列表中选择第一个选项,vb.net,drop-down-menu,oracle10g,oledb,Vb.net,Drop Down Menu,Oracle10g,Oledb,我的应用程序的工作原理是,用户将从gridview中选择具有各种值的行。当他们选择它时,它将重新指向另一个页面,该页面显示更新它的所有信息 我面临的问题是: 我有一个下拉列表,它不显示数据库中的所有列表选项,而是显示由上一条sql语句填充的值作为第一个选项。我该怎么做 例如: 所选的gridview,类别='Health'。一旦选中,它将重新定向到新页面进行更新;但是,显示的第一个选项是category='Computers',而不是'Health' 那么,如何使顶部选项的运行状况相等,并在下面

我的应用程序的工作原理是,用户将从gridview中选择具有各种值的行。当他们选择它时,它将重新指向另一个页面,该页面显示更新它的所有信息

我面临的问题是:

我有一个下拉列表,它不显示数据库中的所有列表选项,而是显示由上一条sql语句填充的值作为第一个选项。我该怎么做

例如:

所选的gridview,类别='Health'。一旦选中,它将重新定向到新页面进行更新;但是,显示的第一个选项是category='Computers',而不是'Health'


那么,如何使顶部选项的运行状况相等,并在下面显示其余选项呢

我试过按类别排序,但这当然使“计算机”成为第一选择

然后我尝试了
其中category=value
,但这只是将“Health”显示为一个选项,而不是所有的类别选项

有什么建议吗

'index from previous sql statement (Index/Item 2 is category)
Dim categoryV = DsAds.Tables(0).Rows(0).Item(2)

Dim ClassStrCat As OleDbCommand = New OleDbCommand("SELECT * FROM t_cat order by category = '" & categoryV & "'", conn)
   OracleDataAdapterAds.SelectCommand = ClassStrCat
   CategoryList.DataSource = DsAds
   CategoryList.DataMember = "t_class"
   CategoryList.DataBind()

   Dim ClassStrCat2 As OleDbCommand = New OleDbCommand("SELECT * FROM t_cat order by category ", conn)
   Dim OracleDataAdapterAds2 As OleDbDataAdapter = New OleDbDataAdapter
   OracleDataAdapterAds2.SelectCommand = ClassStrCat2

   Dim DsAds2 As DataSet = New DataSet
   DsAds2.Clear()

   OracleDataAdapterAds2.Fill(DsAds2, "t_class")
   CategoryList.DataSource = DsAds2
   CategoryList.DataMember = "t_class"
   CategoryList.DataBind()

填充组合框后,只需使用
FindString
FindStringExact
将它的
SelectedIndex
设置为要查找的字符串的索引。它们都返回一个整数,该整数是所需字符串的索引

CategoryList.SelectedIndex = CategoryList.FindStringExact("Health")
如果
FindString
FindExactString
找不到您指定的内容,它将返回-1

“那么如何使顶部选项的运行状况相等,并显示下面的其余选项?”
如果是按……订货,你就不能
1) 您可以删除上面的2条记录

2) 选择索引(2)以设置健康关注点。

3) 我在一个医疗应用程序中遇到了类似的情况,我在之前选择的类别(健康)的顶部添加了内容,并从他的正常位置删除了内容。

我记得画画是正确的时机。

 Private Sub dgv1_Paint(sender As Object, e As PaintEventArgs) Handles dgv1.Paint
     '.. IF categotyV
 End Sub

它可以工作,因此我在编码结束时使用以下代码(加上我已经必须保留的代码“按类别排序”):

CategoryList.Items.FindByText(categoryV).Selected = True

此代码极易受到sql注入攻击。这简直是乞求被黑客攻击。查看参数化查询。我的代码根据显示位置受到限制。该网站是受限制的,这是应用程序链接的来源。这是无关的。很多黑客都是在作业中进行的,或者是网络中受损机器的结果。使用字符串浓缩将数据放入查询是业余的。当我使用FindStringExact时,它会标记一个错误,表示它不是System.Web.UI.WebControl.DropDownList的成员。。。由于
FindStringExact(“”
中显示的内容基于上一页的sql语句,因此我可以执行以下操作
CategoryList.SelectedIndex=categoryV
因为所选类别是动态的?我担心我不能,因为有一个int/string转换问题。我是在SelectedIndexOh、Web而不是WinForms的帮助下解决的。我不从事Web开发,但是您可以设置CategoryList.SelectedValue=“Health”,或者如果您知道索引2将始终是“Health”,您可以设置SelectedIndex=2,但这不是一个好的设计。或者,您可以使用For循环遍历CategoryList.Items,如果某个项等于“Health”,则保存该索引并将其设置为SelectedIndex。Health并不总是2,但索引2始终是所选类别所在的位置。然而,我在下面的回答中选择的选项起了作用。不过我会研究你的建议。谢谢如果我做了CategoryList.SelectedIndex(categoryV),它会说属性访问必须分配给属性或使用它的值。那么我如何提取categoryV的字符串值呢?您是否输入了Keith解决方案CategoryList.SelectedIndex=CategoryList.FindStringExact(“健康”)取决于您想要实现的目标。。甚至纳鲁的回答都是coolKeiths不是我想要的,因为它并不总是健康。