I am trying to make a single display page for an author's books.
the books page only displays books of a type "type" (novels, non-fiction, etc)
I would like to make it so that it can also show all books if "type" isn't selected. I THOUGHT the string would look like this:
<asp:SqlDataSource ID="SqlDSBooks" runat="server" ConnectionString="<%$ ConnectionStrings:csK2Reader%>" SelectCommand="SELECT * FROM [Books] ( If @.Type <> "" then WHERE ([Type] = @.Type)) ORDER BY [SortDate] DESC">
But it doesn't seem to want to work.  I get a "server tag is not well formed" error.
 
Try this:
SELECT*FROM [Books]WHERE (@.TypeISNULLOR [Type]=@.Type)ORDERBY [SortDate]DESC
|||Or, for text variables:
SELECT*FROM [Books]WHERE [Type] like IsNull(@.Type,'%')ORDERBY [SortDate]DESC
That is not, by the way, an exact equivalent of the previous poster's query.
This version allows a wildcard search, whereas the other query requires an exact match.
For example, if you were wanting to search for both Novels and Novellas, a value for @.Type of 'Novel%' would get you both types of book in one query.
Numbers and dates don't work this way. :(
 
No comments:
Post a Comment