- PR -

Gridview データソースの構成での条件分岐

1
投稿者投稿内容
たろう
会議室デビュー日: 2008/01/09
投稿数: 11
投稿日時: 2008-01-12 19:59
お世話になります。
Access2000とVisualstudio2005でWebアプリを作成しております。

Gridviewのデータソースの構成で、ラベルコントロールLabel1を参照し、
Label1の値が0の場合T_DEPTテーブルのデータを全て表示、
0以外の値の場合はその値をWHERE条件として
T_DEPTテーブルからデータ抽出したいのですが、どのように設定すれば実現できますでしょうか。

アドバイスをよろしくお願いいたします。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-01-13 08:19
以下のSQLが参考になるかと。

このSQLは、パラメータ値がNULLのときに全件表示するようにしています。

IsNull()の部分をラベル値を参照するようにすればどうでしょうか。

コード:

<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:NwindSQLConnectionString %>"
SelectCommand="
SELECT [ProductID], [ProductName], [QuantityPerUnit], [UnitPrice]
FROM [Products]
WHERE ([CategoryID] = @CategoryID OR [CategoryID] = IsNull(@CategoryID, CategoryID))
"
CancelSelectOnNullParameter="False">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="CategoryID" PropertyName="SelectedValue"
Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>



これは、SQL Server版ですからAccess用のWHERE句に書き換えてください。

_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集

[ メッセージ編集済み 編集者: Access 編集日時 2008-01-13 08:23 ]
たろう
会議室デビュー日: 2008/01/09
投稿数: 11
投稿日時: 2008-01-14 01:43
回答ありがとうございます。
Label1の値を0でなく、""が入るようにして、WHERE句を以下のようにしたところ、
Label1が""の場合は全件表示、それ以外はLabel1の値をWHERE条件として抽出できるようになりました。

WHERE ([CategoryID] = @CategoryID OR [CategoryID] = IIF(IsNull(@CategoryID), CategoryID))

ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)