Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
Sql 如何使用Visual Basic从text=value1的XML中填充下拉列表?_Sql_Xml_Vb.net_Drop Down Menu - Fatal编程技术网

Sql 如何使用Visual Basic从text=value1的XML中填充下拉列表?

Sql 如何使用Visual Basic从text=value1的XML中填充下拉列表?,sql,xml,vb.net,drop-down-menu,Sql,Xml,Vb.net,Drop Down Menu,我有一个下拉列表,需要根据另一个下拉列表的选择加载特定值。我尝试在sql中使用DISTINCT集执行此操作,但没有返回正确的值: SELECT DISTINCT RMRP_Label, RMRP_Type FROM Table WHERE RMRP_Type IN (" + search + ") 由于某种原因,它不断更改DropDownList.SelectedItem.Text值。。。 所以我制作了一个XML文档: <p> <param Name = "Intake

我有一个下拉列表,需要根据另一个下拉列表的选择加载特定值。我尝试在sql中使用
DISTINCT
集执行此操作,但没有返回正确的值:

SELECT DISTINCT RMRP_Label, RMRP_Type FROM Table 
WHERE RMRP_Type IN (" + search + ")
由于某种原因,它不断更改DropDownList.SelectedItem.Text值。。。 所以我制作了一个XML文档:

<p>

 <param Name = "Intake_ID"
 Value = "!hssCombo"></param>  

 <param Name = "Office_ID"
 Value = "#hssCombo"></param>  

 <param Name = "sub_obj"
 Value = "%hssCombo"></param>  

 <param Name = "Svc_ID"
 Value = "!hssCombo"></param>


例如,我需要用
Name
值填充下拉列表,从这个xml中
value=“#hssCombo”
或者更确切地说,从select语句中的
value=search
可以使用以下XPath选择值:

//p/param[@Value='#hssCombo']/@Name

XPath是查询XML文档的标准方法,因此值得学习。大多数XML工具都支持XPath,包括.NET和XSLT。以下是路径部分的含义:

  • //p
    -
    p
    是我们要查找的元素的名称。双斜杠表示元素可以出现在文档中的任何位置。如果我们只想包含发生在根上的
    p
    元素,我们可以使用一个斜杠将其作为绝对路径
  • /param
    -指定
    p
    元素下的子元素
  • [@Value='#hssCombo']
    -指定一个条件。仅包含符合条件的
    //p/param
    元素。在这种情况下,条件指定
    param
    元素的
    Value
    属性必须等于
    #hssCombo
    @
    符号表示
    是一个属性,而不是子元素名称
  • /@Name
    -指定我们对
    param
    元素的
    Name
    属性的值感兴趣
如果使用的是
XmlDocument
类,则可以使用
SelectSingleNode
SelectNodes
方法选择带有XPath的节点。例如:

Dim node As XmlNode = doc.SelectSingleNode("//p/param[@Value='#hssCombo']/@Name")
If node IsNot Nothing Then
    Dim name As String = node.InnerText
End If
显然,正如在SQL示例中一样,您可以动态构建XPath,因为它只是一个字符串,如下所示:

doc.SelectSingleNode("//p/param[@Value='" & search & "']/@Name")
如果您使用的是
XDocument
类,还可以使用
xpatheevaluate
XPathSelectElement
XPathSelectElements
方法使用XPath进行选择