0

我正在运行一个简单的程序,您在文本框中输入用户编号,单击提交按钮,然后程序应该去数据库查找您输入的编号并显示该行信息。很简单。问题是我不断收到 Xml.XmlDataDocument() 已过时的错误。我已经用谷歌搜索了这个问题,这导致我来到这里,但是建议的替换在我的程序中不起作用。另外,我没有研究过 VB,这是针对 XML 类的。我已经仔细检查了我的代码是否有任何错误,但什么也没看到。但是,我可能只见树木不见森林。想让另一双眼睛看看我的代码,看看我是否遗漏了什么,或者提供 Xml.XmlDataDocument() 行的替代品。提前感谢您提供的任何帮助。

这是我正在使用的代码:

onClick 事件的 Javascript

<script language="javascript" type="text/javascript">

        function btnSearch_onclick() {
            var docSubmit = new ActiveXObject("MSXML2.DOMDocument");
            docSubmit.loadXML("<?xml version='1.0'?><request><customerID>" + txtCustID.value + "</customerID></request>")


            var objSocket = new ActiveXObject("MSXML2.XMLHTTP");
            objSocket.open("POST", "Lookup.aspx", false)
            objSocket.send(docSubmit)
            alert(objSocket.responseXML.xml)

            lblFirstName.innerHTML = objSocket.responseXML.selectSingleNode("//FirstName").firstChild.nodeValue
            lblLastName.innerHTML = objSocket.responseXML.selectSingleNode("//LastName").firstChild.nodeValue
            lblAddress.innerHTML = objSocket.responseXML.selectSingleNode("//Address").firstChild.nodeValue
            lblCity.innerHTML = objSocket.responseXML.selectSingleNode("//City").firstChild.nodeValue
            lblState.innerHTML = objSocket.responseXML.selectSingleNode("//State").firstChild.nodeValue
            lblZip.innerHTML = objSocket.responseXML.selectSingleNode("//Zip").firstChild.nodeValue

        }
    </script>

这是VB代码:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim docReceived As New System.Xml.XmlDataDocument()
        docReceived.Load(Request.InputStream)

        Dim CustomerID = docReceived.SelectSingleNode("//customerID").FirstChild.Value

        Dim myConnection As New System.Data.OleDb.OleDbConnection
        Dim myConnectionString As String
        myConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & _
        Server.MapPath("customer.mbd")
        myConnection.ConnectionString = myConnectionString

        Dim strSQL As String
        strSQL = "Select * From CustomerInfo where CustomerID = " & CustomerID

        Dim myAdapter As New System.Data.OleDb.OleDbDataAdapter(strSQL, myConnection)

        Dim myDataSet As New System.Data.DataSet("CustomerInfo")

        Dim intRecords As Integer
        intRecords = myAdapter.Fill(myDataSet, "Customer")

        Response.ContentType = "text/xml"

        If intRecords > 0 Then
            myDataSet.WriteXml(Response.OutputStream)
        Else
            Response.Write("<?xml version='1.0'?><customer><FirstName>Not Found</FirstName><LastName>***</LastName><Address>***</Address><City>***</City><State>***</State><Zip>***</Zip><Phone>***</Phone><Email>***</Email></customer>")
        End If

        myDataSet.WriteXml(Response.OutputStream)

        myConnection.Close()
        myAdapter.Dispose()
        myConnection.Dispose()

    End Sub
4

1 回答 1

0

XmlDataSet 已过时。正如您在msdn上看到的,它甚至可能在 .NET Framework 的下一版本中被删除([ObsoleteAttribute("XmlDataDocument class will be removed in a future release.")])。在你的情况下,我认为你根本不需要它。简单的修复似乎是只使用 XmlDocument。我相信您不必更改代码中的任何其他内容,但这一行

Dim docReceived As New System.Xml.XmlDataDocument()

至:

Dim docReceived As New System.Xml.XmlDocument()

于 2012-12-07T17:34:17.003 回答