2015-03-30 22 views
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語句。我可以這樣做嗎?如果是,如何?

+0

您確定只關心1個參數是否匹配?如果有人要求所有名字=約翰在國籍=美國,如果您或者,那麼所有具有約翰名字或具有美國國籍的記錄將被退回。當您有多個用戶輸入時,通常您和您的條件使篩選搜索條件更窄。 – StarPilot 2015-03-30 19:51:19

+0

所以這應該工作。是什麼讓你覺得它沒有或不會? – 2015-03-30 19:53:57

+0

@Conrad Frix它不起作用,因爲它顯示一個ORA-01722無效的數字異常,我不知道該如何處理。 – kisbovan93 2015-03-30 21:23:21

回答

-1

您必須使用where name1,name2,name3 OR name1,name2,name3

+0

這不會看起來像正確的SQL語法,無論如何,它不是特別清楚你到底希望OP如何改變他們的代碼來匹配它。 – 2015-03-31 01:41:11

相關問題