返回值无效
问题描述:
我正在使用一个简单的XML Web服务,它允许您在XML文件上执行简单的CRUD操作。这里是我的客户端代码:返回值无效
@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;
}
,这里是我的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 ([email protected] == isDeleted)
{
MessageBox.Show("Student Deleted", "Delete Student", MessageBoxButtons.OK);
textBox1.Text = "";
}
else if([email protected] != isDeleted)
{
MessageBox.Show("Student_ID not found or An error has occured!", "Delete Student", MessageBoxButtons.OK);
}
}
我要检查,如果该元素已被删除,然后显示正确的消息框......我的返回值时删除是真的,但是当它在VS上检查它的响应时,它显示为false,显示“找不到Student_ID或发生错误!” 但该元素仍然被删除!任何原因为什么?
答
isDeleted = myRef.Delete(student_ID);
你还没有返回值分配给isDeleted
,做如上
答
每当从列表中删除的项目总是从年底开始去。索引得到搞砸,如果你不
for (int i = nList2.getLength() - 1; i >= 0; i--)
+0
谢谢,将注意:) – lifeTech
感谢它的工作=) – lifeTech