简体   繁体   English

返回值无效

[英]return value not valid

am working on a simple XML web serice that allows you to perform simple CRUD operations on an XML file. 我正在开发一个简单的XML Web服务,允许您对XML文件执行简单的CRUD操作。 Here's my client code: 这是我的客户端代码:

@WebMethod(operationName = "Delete")
public boolean Delete(String std_id) throws Exception {
    File file = new File("C:/Users/user/Desktop/myStudentInstance/myStudentInstance.xml");
    boolean isDeleted = true;
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    org.w3c.dom.Document doc = db.parse(file);
    NodeList root = doc.getElementsByTagName("Students");
    NodeList nList2 = doc.getElementsByTagName("student");
    for (int i = 0; i < nList2.getLength(); i++) {
        Node nNode = root.item(0);
        Node nNode2 = nList2.item(i);
        Element eElement2 = (Element) nNode2;

        if (eElement2.getElementsByTagName("Student_id").item(0).getTextContent().equals(std_id)) {
            isDeleted = true;
            nNode.removeChild(nNode2);

        } else if (eElement2.getElementsByTagName("Student_id").item(0).getTextContent() != (std_id)) {
            isDeleted = false;

        }

        DOMSource source = new DOMSource(doc);

        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        StreamResult result = new StreamResult(file);
        transformer.transform(source, result);

    }
    System.out.println(isDeleted);
    return isDeleted;
}

And Here's my code on Visual studio : 这是我在Visual Studio上的代码:

private void Delete_Click(object sender, EventArgs e)
    {

        var student_ID = textBox1.Text.ToString();
        Boolean isDeleted = true;
        ServiceReference1.StudentWSClient myRef = new ServiceReference1.StudentWSClient();
        ServiceReference1.DeleteResponse response = new ServiceReference1.DeleteResponse();
        myRef.Delete(student_ID);
        if (response.@return == isDeleted )
        {
            MessageBox.Show("Student Deleted", "Delete Student", MessageBoxButtons.OK);
            textBox1.Text = "";
        }
        else if(response.@return != isDeleted)
        {
            MessageBox.Show("Student_ID not found or An error has occured!", "Delete Student", MessageBoxButtons.OK);
        }
    }

I want to check if the element has been deleted,then display proper message box...my return value when deleted is TRUE , but when it check its response on VS it says false, displays "Student_ID not found or An error has occured!" 我想检查元素是否已被删除,然后显示正确的消息框...当删除时我的返回值为TRUE,但是当它检查VS上的响应时它显示为false,显示“找不到Student_ID或发生了错误! “ but the element still gets deleted! 但元素仍然被删除! Any reasons why? 有什么原因吗?

isDeleted = myRef.Delete(student_ID);

您尚未将返回值分配给isDeleted ,请执行上述操作

Whenever deleting an item from a list always go from end to beginning. 每当从列表中删除项目时,总是从头到尾。 Indexing gets messed up if you don't 如果你不这样做,索引会搞砸

for (int i = nList2.getLength() - 1; i >= 0; i--)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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