0
因此,這裏是我的代碼:在ASP.NET中有更多的WHERE參數的SQL查詢,這有可能嗎?
<asp:SqlDataSource ID="UsersSearchResult" runat="server" ConnectionString="<%$ ConnectionStrings:UserQueries %>" ProviderName="<%$ ConnectionStrings:UserQueries.ProviderName %>"
SelectCommand="SELECT * FROM USERS WHERE ID = :userparameter1 OR FIRSTNAME = :userparameter2 OR LASTNAME = :userparameter3 OR
USERNAME = :userparameter4 OR PASSWORD = :userparameter5 OR EMAIL = :userparameter6 OR GENDER = :userparameter7 OR
BIRTHDATE = :userparameter8 OR NATIONALITY = :userparameter9 OR CURRENTCITY = :userparameter10">
<SelectParameters>
<asp:ControlParameter ControlID="SearchUsersBox" Name="userparameter1" PropertyName="Text" Type="Empty" />
<asp:ControlParameter ControlID="SearchUsersBox" Name="userparameter2" PropertyName="Text" Type="Empty" />
<asp:ControlParameter ControlID="SearchUsersBox" Name="userparameter3" PropertyName="Text" Type="Empty" />
<asp:ControlParameter ControlID="SearchUsersBox" Name="userparameter4" PropertyName="Text" Type="Empty" />
<asp:ControlParameter ControlID="SearchUsersBox" Name="userparameter5" PropertyName="Text" Type="Empty" />
<asp:ControlParameter ControlID="SearchUsersBox" Name="userparameter6" PropertyName="Text" Type="Empty" />
<asp:ControlParameter ControlID="SearchUsersBox" Name="userparameter7" PropertyName="Text" Type="Empty" />
<asp:ControlParameter ControlID="SearchUsersBox" Name="userparameter8" PropertyName="Text" Type="Empty" />
<asp:ControlParameter ControlID="SearchUsersBox" Name="userparameter9" PropertyName="Text" Type="Empty" />
<asp:ControlParameter ControlID="SearchUsersBox" Name="userparameter10" PropertyName="Text" Type="Empty" />
</SelectParameters>
</asp:SqlDataSource>
我試圖在這裏做的是,當一個搜索參數看起來到每列在數據庫中使用OR語句。我可以這樣做嗎?如果是,如何?
您確定只關心1個參數是否匹配?如果有人要求所有名字=約翰在國籍=美國,如果您或者,那麼所有具有約翰名字或具有美國國籍的記錄將被退回。當您有多個用戶輸入時,通常您和您的條件使篩選搜索條件更窄。 – StarPilot 2015-03-30 19:51:19
所以這應該工作。是什麼讓你覺得它沒有或不會? – 2015-03-30 19:53:57
@Conrad Frix它不起作用,因爲它顯示一個ORA-01722無效的數字異常,我不知道該如何處理。 – kisbovan93 2015-03-30 21:23:21