【问题标题】:Filter expression in SqldatasouceSqldatasouce 中的过滤器表达式
【发布时间】:2011-07-06 11:15:31
【问题描述】:

我有一个 sqldatasource,我在其中添加了一个简单的过滤器表达式,仅用于测试

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
                SelectCommand="SELECT * FROM [project_details]" 
                FilterExpression="id=33" 
                ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
                EnableCaching="True">

以及更新面板中的网格视图,其数据源为 sqldatasouce1 。但是在执行此页面时,网格视图会显示所有结果,而无需进行任何过滤。请帮帮我,我完全被这里打动了

【问题讨论】:

  • :: 数据源模式已设置为“数据集”
  • 你检查错字了吗?您确定您使用的是正确的 SqlDatasourceID 吗? FilterExpression 应该可以正常工作。
  • yuo.i 已经检查了一百次了。
  • 我尝试按照您使用“where”告诉它的方式工作正常。但是如果我不给参数提供参数值也会有一个问题。它没有显示任何结果。因为假设用户在运行时添加 where 参数。

标签: c# asp.net visual-studio


【解决方案1】:

如果 id 以文本格式存储,那么您可能希望在表达式中加上单引号,如下所示:

id='33'

【讨论】:

  • 不起作用。我认为单个 qoute 仅适用于字符串字段。MSDN 您可以在 FilterExpression 属性中包含参数。如果参数是字符串或字符类型,请将参数用单引号引起来。如果参数是数字类型,则不需要引号。 FilterParameters 集合包含为 FilterExpression 属性中的占位符计算的参数。
  • 这就是我写“If”的原因......我不知道你的字段是什么格式,我给了你一个示例解决方案,以防它是字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-02
  • 1970-01-01
相关资源
最近更新 更多