1

そのため、SQL 2008サーバーにCustomersテーブルがあり、アプリのグリッドビューにバインドしています。検索ボタンは、次のコードでテーブルを再バインドします。

ControlParameter ctrlParam = new ControlParameter();
ctrlParam.ControlID = "SearchTextBox";
ctrlParam.PropertyName = "Text";
ctrlParam.Name = "Search";
QueryStringParameter ctrlParam2 = new QueryStringParameter();
ctrlParam2.DefaultValue = "Canceled";
ctrlParam2.QueryStringField = "Canceled";

ctrlParam2.Name = "CustomerStatus";
ctrlParam2.Type = TypeCode.String;
SqlDataSource1.SelectParameters.Clear();
SqlDataSource1.SelectParameters.Add(ctrlParam);
SqlDataSource1.SelectParameters.Add(ctrlParam2);
SqlDataSource1.SelectCommand = "SELECT FullText_for_Customers.RANK, [CustomerId], [CustomerStatus], [CustomerGroup], [CustomerFirstName], [CustomerLastName], [CustomerFullName], [CompanyName], [CustomerAddress], [CustomerCity], [CustomerState], [CustomerZipcode], [CustomerFullAddress], [CustomerEmail], [CustomerEmail2], [CustomerPhoneNumber], [CustomerPhoneNumberExt], [CustomerType], [CustomerSubscriptionType], [CustomerCost], [CustomerPaymentMethod], [CustomerPickUpDay], [CustomerPickUpDay2], [CustomerSignUpDate], [CustomerNotes], [CustomerDriver] FROM [Customers] INNER JOIN FREETEXTTABLE(Customers, (CustomerFirstName, CustomerLastName, CustomerFullName, CompanyName, CustomerAddress, CustomerCity, CustomerState, CustomerZipcode, CustomerFullAddress, CustomerEmail, CustomerEmail2, CustomerPhoneNumber, CustomerNotes), @Search) as FullText_for_Customers ON FullText_for_Customers.[KEY]=Customers.CustomerId WHERE ([CustomerStatus] <> @CustomerStatus) ORDER BY FullText_for_Customers.RANK DESC";

GridViewに分割されたときCustomerID, CustomerFirstName, CustomerLastName, CustomerPickUpDay, and CustomerSignUpDate

検索するときは名前だけを検索しますが、完全な名前または姓を入力する必要があり、その一部だけを入力することはできません。家系の名前Bonillaを取得するように、表示する結果をBonillaで検索する必要があります。単に、Bon、Bo、またはillaを検索することはできません。どうすればこの仕事をすることができますか?

4

1 に答える 1

1

フリーテキスト検索は実際にはそのようには機能しません。ただし、概算を得ることができます。FREETEXTTABLEの代わりにCONTAINSTABLEを使用*し、検索語にアスタリスク()を追加します。そうすれば、「Bo」または「Bon」で始まる名前を取得できます。ただし、「illa」で終わる名前を取得する方法はありません。

(さらに、FREETEXTTABLEを使用することにより、データベースに検索語をシソーラスに通すように要求します。これは、名前の場合、おそらく悪い考えです。)

于 2012-09-15T22:51:21.090 に答える