简体   繁体   中英

Datatable:xml query for xml column

If i load xml datatype column to a datatable then can i perform xml query on it? SQL server supports queries like .exist, .value on xml columns. I am trying those kind of queries on datatable.

Below is a part of code which shows where i am getting error.

Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
        Dim timDiff As Double
        Dim iter1 As Integer

        TextBox1.Text &= Button15.Text & vbNewLine & "      Iterations: " & TextBox2.Text & vbNewLine
        timDiff = DateAndTime.Timer
        Dim SqlAdapter As New SqlDataAdapter

        Dim strTemp As String
        Dim iRow As Integer

        Dim rConn As New SqlConnection("data source=pc91\sqlexpress;user id=admin;password=abc;initial catalog=Checklists;connect timeout=2000;")
        rConn.Open()

        SqlAdapter = New SqlDataAdapter
        sDataSet = New DataSet
        sqldatatable = Nothing


        SqlAdapter.SelectCommand = New SqlCommand("select * from DesignChanges", rConn)
        SqlAdapter.Fill(sDataSet, "tmpTable")
        sqldatatable = sDataSet.Tables("tmpTable")

        For iter1 = 1 To Val(TextBox2.Text)
            Try
                For iRow = 0 To sqldatatable.Rows.Count - 1
                    strTemp = sqldatatable.Rows(iRow).Item("AllotedTo").ToString
                Next iRow
            Catch ex As Exception
                MsgBox(ex.ToString & Space(10) & Err.Description)
            End Try
        Next
        rConn.Close()


        SqlAdapter.Dispose()
        rConn.Dispose()

        sDataSet = Nothing
        SqlAdapter = Nothing
        rConn = Nothing
        timDiff = DateAndTime.Timer - timDiff
        TextBox1.Text &= "      Total Time Taken: " & timDiff & vbNewLine
    End Sub



    Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
        bs.DataSource = sqldatatable
        DataGridView1.DataSource = bs

    End Sub

    Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click

       bs.Filter = "[UserApproval].exist ('/Root/Row[User=''xyz'']') =1"

    End Sub
End Class

In the above code error comes like "The expression contains undefined function call UserApproval.exist()." for the line bs.Filter = "[UserApproval].exist ('/Root/Row[User=''xyz'']') =1" .

If i use .value function then error will come as "The expression contains undefined function call UserApproval.value()."

But the same functions works in SQL query for sql server.

Yes, you can. Did you read this ? What kind of queries do not work well?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM