<asp:SqlDataSource
  ID="PersonnelSource" runat="server" ConnectionString="<%$ ConnectionStrings:VicATSAAS %>"
  SelectCommand="SELECT [UserSN], [Name] FROM [Job] WHERE (([Group] = @Group) AND ([Name] LIKE '%' + @Name + '%') AND ([JobOut] <= getdate()))">
  <SelectParameters>
  <asp:SessionParameter Name="Group" SessionField="Group" Type="Int32" />
  <asp:FormParameter FormField="Personnelbox" Name="Name" Type="String" />
  </SelectParameters>
  </asp:SqlDataSource>如果用上边的写法,一但Personnelbox值为空,收不显示任务数据了...如果Personnelbox的值为空,我希望显示出来所有值,就相当于SQL命令里 ([Name] LIKE '%%')这样的时候,我应怎么写呀?不像是SQL命令的原因!
用同一句在查询分析器里试过,可以正常通过declare   @Group  varchar(8000)
declare   @Name   varchar(8000)
set @Group = 4
set @Name = ''
SELECT [UserSN], [Name] FROM [Job] WHERE (([Group] = @Group) AND ([Name] not LIKE '%' + @Name + '%') AND ([JobOut] <= getdate())) order by JobOut 会不会与   <asp:FormParameter FormField="Personnelbox" Name="Name" Type="String" /> 值的传送有关?
当Personnelbox值为空时,没有传送'',而是其它的?由于是在ASPX页面里,无法跟踪 SelectCommand 的完全字符串值

解决方案 »

  1.   

    简化版以后就是这个意思!我想要的就是TextBox1在没有输入的时候显示全部数据,有输入的时候显示符合条件的数据!        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
            <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1"
                DataTextField="Name" DataValueField="UserSN">
            </asp:DropDownList><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:VicATSAAS %>"
                SelectCommand="SELECT [UserSN], [Name] FROM [Job] WHERE ([Name] LIKE '%' + @Name + '%')">
                <SelectParameters>
                    <asp:FormParameter FormField="Textbox1" Name="Name" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>
      

  2.   

    可以给asp:FormParameter 以个缺省值吗
      

  3.   

    <asp:FormParameter FormField="Textbox1" Name="Name" Type="String" DefaultValue="" />