I have an odd problem. I have a gridview attached to a sqldatasource that I send three possible parameters to. The search works fine if I search the item number but if I search for the first name or last name without the item number it does not return anything. The SQL works fine when I test it in SQL management studio but does not when I test it in visual studio in the search form. Any assistance in solving this will be appreciated. Thanks for your time.
<table style="width: 100%;">
<tr>
<td>Caller Search</td>
<td>
<asp:Label ID="ITEMsearchlable" runat="server" Text="ITEM#"></asp:Label><br />
<asp:TextBox ID="ITEM_NUMsearch" runat="server"></asp:TextBox></td>
<td>
<asp:Label ID="ofname_label" runat="server" Text="First name"></asp:Label><br />
<asp:TextBox ID="search_fname" runat="server" CssClass="uppercase"></asp:TextBox></td>
<td><asp:Label ID="olname_label" runat="server" Text="Last name"></asp:Label><br />
<asp:TextBox ID="search_lname" runat="server" CssClass="uppercase"></asp:TextBox></td>
<td>
<asp:Button ID="search_btn" runat="server" Text="Offender Caller" /></td>
</tr>
</table>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" Width="771px" EmptyDataText="No record found">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="ITEM_NUM" HeaderText="ITEM_NUM" SortExpression="ITEM_NUM" />
<asp:BoundField DataField="NAME_FIRST" HeaderText="NAME_FIRST" SortExpression="NAME_FIRST" />
<asp:BoundField DataField="NAME_LAST" HeaderText="NAME_LAST" SortExpression="NAME_LAST" />
<asp:BoundField DataField="CALLER_ID" HeaderText="CALLER_ID" SortExpression="CALLER_ID" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testdbConnectionString %>"
SelectCommand="SELECT DISTINCT
ORDERS.ITEM_NUM,
ORDERS.NAME_FIRST,
ORDERS.NAME_LAST,
VICTIM_CALL_LOG.CALLER_ID
FROM ORDERS LEFT OUTER JOIN
VICTIM_CALL_LOG ON ORDERS.ITEM_NUM = VICTIM_CALL_LOG.ITEM_NUM WHERE ((ORDERS.ITEM_NUM = @ITEM_NUM)
OR (ORDERS.NAME_FIRST LIKE '%' + @NAME_FIRST + '%') OR (ORDERS.NAME_LAST LIKE '%' + @NAME_LAST + '%'))">
<SelectParameters>
<asp:ControlParameter ControlID="ITEM_NUMsearch" Name="ITEM_NUM" PropertyName="Text" Type="Int32" />
<asp:ControlParameter ControlID="search_fname" DefaultValue="NULL" Name="NAME_FIRST" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="search_lname" DefaultValue="NULL" Name="NAME_LAST" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
%s from the query and for now type them insearch_fname? ISTR some problem when trying to add wildcard characters in the query rather than in the parameter value.ITEM_NUMa default value of"-1", does that help?