2012-08-13 62 views
-1

當名稱包含連字符時,它無法獲取正確的行。 它實際上沒有任何獲取連字符/短劃線打破搜索

XAML:

<asp:EntityDataSource ID="EntityDataSource1" runat="server" ConnectionString="name=Entities" 
     DefaultContainerName="Entities" EnableFlattening="False" EntitySetName="CustomerClassifications"> 
    </asp:EntityDataSource> 

     <div class="searchWrapper"> 
      Search 
      <asp:Panel DefaultButton="btnSearch" runat="server" ID="pnlSearch"> 
      <asp:TextBox ID="tbxSearch" runat="server" CssClass="tbxSearch"> 
      </asp:TextBox> 
      <asp:Button ID="btnSearch" runat="server" CssClass="btnSearch" Text="Search" /> 
      </asp:Panel> 
     </div> 

代碼背後:

  this.EntityDataSource1.WhereParameters.Clear(); 
      if (string.IsNullOrEmpty(tbxSearch.Text)) 
      { 
       this.EntityDataSource1.Where = "1 = 1"; 
      } 
      else 
      { 
       this.EntityDataSource1.Where = "it.Name = @Name "; 
      } 

回答

0

您正在清理WhereParameters,但在第二個使用參數@Name where子句。我想你不應該清除WhereParameters

+0

好吧我刪除了清除...但我仍然有同樣的問題。搜索僅在連字符「 - 」時才起作用 – rtp 2012-08-13 10:06:38

+0

然後嘗試使用SQL Server Profiler捕獲正在執行的SQL。這很容易。請完整發布SQL。 – usr 2012-08-13 10:34:51

+0

我得到它的工作,謝謝你 – rtp 2012-08-13 10:57:43