サンプルコードを組み合わせて、使用している全くの初心者です。
ASP.NETとAccess(2013)を使用して、Web上にデータを表示させています。
そこに絞込みの機能を追加させWebFormsを作成したいと思っています。
まず、AccessのQry_BusinessReportクエリーを呼び出し、そこにある[Customer_NameEng]、[Customer_NameLoc]、[Supply_Product]フィールドのデータを表示することはできています。
次に絞込み用の[TextBox1]と[DropDownList1]を配置し、[TextBox1]で[Customer_NameEng]を、[DropDownList1]で[Supply_Product]を曖昧検索(Likeを使って)、絞り込むこともできました。
ここからが質問なのですが、[TextBox1]に入力したキーワードで[Customer_NameEng]だけではなく、[Customer_NameLoc]も同時に曖昧検索させたいのです。
もともとAccess側には[Customer_NameEng]フィールドには英語でTOYOTA、[Customer_NameLoc]フィールドには日本語でトヨタなどが入力されています。[TextBox1]に"TOYOTA"あるいは"トヨタ"のどちらを入力しても、該当データを抽出できるようにしたいのです。
下記のように、Where句を"or"で繋いで、Parameterに[Customer_NameLoc]を追加しましたが、「1 つ以上の必要なパラメーターの値が設定されていません。」とのエラーで表示することができません。
どこを修正したら良いか、どなたかお教え願います。
<開発環境>Windows10、Acess2013、Expression web4.0 .NET Framework 4.8(レジストリーから確認)、ASP.NET 4.8.4042.0(エラーコード画面から確認)
以下、該当部分のコードです(素人で、いらないパラメータが入っており見にくいかもしれませんがご容赦願います)。
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\inetpub\wwwroot\App_Data\Sales-Dep_WebList.mdb" ProviderName="System.Data.OleDb" SelectCommand="SELECT [Customer_NameEng], [Customer_NameLoc], [Supply_Product] FROM [Qry_BusinessReport] WHERE (([Customer_NameEng] LIKE '%' + ? + '%') AND ([Supply_Product] LIKE '%' + ? + '%')) or (([Customer_NameLoc] LIKE '%' + ? + '%') AND ([Supply_Product] LIKE '%' + ? + '%'))"> <SelectParameters> <asp:ControlParameter ControlID="TextBox1" DefaultValue="%" Name="Customer_NameEng" PropertyName="Text" Type="String" /> <asp:ControlParameter ControlID="TextBox1" DefaultValue="%" Name="Customer_NameLoc" PropertyName="Text" Type="String" /> <asp:ControlParameter ControlID="DropDownList1" DefaultValue="%" Name="Supply_Product" PropertyName="SelectedValue" Type="String" /> </SelectParameters> </asp:SqlDataSource>
回答1件
あなたの回答
tips
プレビュー