2012-01-08 17 views
0

ユーザーが日付を選択したときに検索結果を一覧表示するためにSqlDataSourceコントロールを使用しています。日付がnullの場合は、すべてのレコードを一覧表示します。SqlDataSourceコントロールパラメータNull値

<asp:SqlDataSource ID="SqlDataSource1" runat="server" meta:resourcekey="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:Test_ConnectionString %>" 
SelectCommand="select MeetingID, MeetName as MeetingName, MeetDate, MeetTime from Meeting where Status ='Recorded' and Case when @sel_to_date ='' then MeetDate <= '2200-12-31' else MeetDate = @sel_to_date end order by MeetDate desc, Meettime desc "> 
<SelectParameters>       
<asp:ControlParameter ConvertEmptyStringToNull="true" ControlID="datepicker" Name="sel_to_date" DefaultValue="" PropertyName="Text" Type="String"/> 
</SelectParameters> 
</asp:SqlDataSource> 

ただし、構文エラーが返されます。

ユーザーがテキストボックスを空白のままにしたときにすべてのレコードをすべて一覧にしたい。どうやってするか?

に関して、 ジョー

答えて

0

caseステートメントが正しくありません。 SQLのcaseステートメントは値を返し、比較は実行しません。 CASE (Transact-SQL)

ソリューションはそうのような条件でcaseを交換することです参照してください:あなたは、コピー&ペーストすることができますので、それをデータソースの宣言へ

select 
    MeetingID, MeetName as MeetingName, MeetDate, MeetTime 
from Meeting 
    where Status ='Recorded' 
    and 
    (
     (@sel_to_date ='' and MeetDate <= '2200-12-31') 
     or 
     MeetDate = @sel_to_date 
    ) 
order by MeetDate desc, Meettime desc 

あなたの便宜のために、ここでは、単一の行にあります:

select MeetingID, MeetName as MeetingName, MeetDate, MeetTime from Meeting where Status ='Recorded' and ((@sel_to_date ='' and MeetDate <= '2200-12-31') or MeetDate = @sel_to_date) order by MeetDate desc, Meettime desc 
+0

ありがとうございます。できます –

1
<asp:SqlDataSource ID="SqlDataSource1" runat="server" meta:resourcekey="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:Test_ConnectionString %>" 
SelectCommand="select MeetingID, MeetName as MeetingName, MeetDate, MeetTime from Meeting where Status ='Recorded' and Case when @sel_to_date is null then MeetDate <= '2200-12-31' else MeetDate = @sel_to_date end order by MeetDate desc, Meettime desc "> 
<SelectParameters>       
<asp:ControlParameter ConvertEmptyStringToNull="true" ControlID="datepicker" Name="sel_to_date" DefaultValue="" PropertyName="Text" Type="String"/> 
</SelectParameters> 
</asp:SqlDataSource> 

私はそれをチェックしませんでしたが、あなたがそのようにnullに変換するよりも、空の値を渡す場合は、 @sel_to_dateをチェックする必要がnullの代わりに@sel_to_date =「」 は私を使用しますコードスニペット。