2013-08-02 3 views
0

xml 데이터 형식 열을 데이터 테이블에로드하면 xml 쿼리를 수행 할 수 있습니까? SQL Server는 xml 열에서 .exist, .value와 같은 쿼리를 지원합니다. 나는 datatable에 이러한 종류의 쿼리를 시도하고있다.Datatable : xml 열 xml 쿼리

다음은 오류가 발생하는 위치를 보여주는 코드의 일부입니다.

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 

위의 코드 오류는 "식에 정의되지 않은 함수 호출 UserApproval.exist()가 있습니다"와 같이 나타납니다. bs.Filter = "[UserApproval] .exist ('/ Root/Row [User =' 'xyz' ']') = 1"행에 대해.

.value 함수를 사용하는 경우 "식에 정의되지 않은 함수 호출 UserApproval.value()가 포함되어 있습니다."라는 오류가 표시됩니다.

하지만 동일한 기능이 SQL 서버에서 SQL 쿼리에서 작동합니다.

+0

'.Value'는 무엇을 노출합니까? – OneFineDay

+0

질문을 업데이트했습니다. –

답변

-1

예, 가능합니다. this을 읽었습니까? 어떤 종류의 쿼리가 제대로 작동하지 않습니까?

+0

당신이 언급 한 링크는 SQL 서버를위한 것입니다.하지만 XML 쿼리가 datatable에서 수행되기를 원합니다. –