richardmojo
asked on
C# web service
This method never returns that a book is in the collection when it actually is. Can some one please tell me where I'm going wrong.
/**
* A method that returns the details of a book from the catalogue
*
* @param isbn, the ISBN of the book whose details are desired
*/
[WebMethod]
public string isbnQuery(string isbn)
{
string str ="";
catalogue = new XmlTextReader(Server.MapPa th("Catalo gue.xml")) ;
while(catalogue.Read( ))
{
if( catalogue.Name == BOOK)
{
// if( catalogue.GetAttribute("is bn").Equal s(isbn))
if( catalogue.GetAttribute("is bn") == isbn)
{
str = "Title =" + catalogue.GetAttribute("ti tle")+ ", ";
str += "Author =" + catalogue.GetAttribute("au thor") +", ";
str += "Genre =" + catalogue.GetAttribute("ge nre");
}
else
{
str = "Book not found";
}
}
}//while
catalogue.Close();
return str;
}
/**
* A method that returns the details of a book from the catalogue
*
* @param isbn, the ISBN of the book whose details are desired
*/
[WebMethod]
public string isbnQuery(string isbn)
{
string str ="";
catalogue = new XmlTextReader(Server.MapPa
while(catalogue.Read( ))
{
if( catalogue.Name == BOOK)
{
// if( catalogue.GetAttribute("is
if( catalogue.GetAttribute("is
{
str = "Title =" + catalogue.GetAttribute("ti
str += "Author =" + catalogue.GetAttribute("au
str += "Genre =" + catalogue.GetAttribute("ge
}
else
{
str = "Book not found";
}
}
}//while
catalogue.Close();
return str;
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
In it's current state, you are essentially getting this in a loop:
Book not found
Book not found
Title = Title, Author = Author, Genre = Genre
Book not found
Book not found <-Last entry is returned
And of course Book not found is the last value placed in str
When you find the ISBN == ISBN, then just return str
Example (I am not a C# programmer, but I can understand what you have here)
**
* A method that returns the details of a book from the catalogue
*
* @param isbn, the ISBN of the book whose details are desired
*/
[WebMethod]
public string isbnQuery(string isbn)
{
string str ="";
catalogue = new XmlTextReader(Server.MapPa
while(catalogue.Read( ))
{
if( catalogue.Name == BOOK)
{
// if( catalogue.GetAttribute("is
if( catalogue.GetAttribute("is
{
str = "Title =" + catalogue.GetAttribute("ti
str += "Author =" + catalogue.GetAttribute("au
str += "Genre =" + catalogue.GetAttribute("ge
catalogue.Close();
return str;
}
else
{
str = "Book not found";
}
}
}//while
catalogue.Close();
return str;
}