FineUI 官方论坛

标题: 这个语句是什么意思 [打印本页]

作者: 游泳的鱼    时间: 2012-12-10 13:18
呵呵,这个有点类似以前拼接SQL时为了查询时省事,免得后面逐个判断,总是在查询前加一个Where 1=1
作者: 魔小涛    时间: 2012-12-10 17:00
标题: 这个语句是什么意思
SqlQuery q = new Select().From<XUser>();
            q.Where("1").IsEqualTo("1");

用户表里没有“1”这个字段,q.Where("1").IsEqualTo("1")这句是起什么作用?


作者: sanshi    时间: 2012-12-10 17:29
呵呵,这句话其实就是为了加个 Where 子句(1=1),这样下面的查询可以直接 And 或者 Or 子句了。

作者: sanshi    时间: 2012-12-10 17:31
再详细解释下,比如这段代码:
  1. SqlQuery q = new Select().From<XUser>();
  2.             q.Where("1").IsEqualTo("1");

  3.             // 在职务名称中搜索
  4.             string searchText = ttbSearchMessage.Text.Trim();
  5.             if (!String.IsNullOrEmpty(searchText))
  6.             {
  7.                 q.And(XUser.NameColumn).ContainsString(searchText);
  8.             }

  9.             // 过滤启用状态
  10.             if (rblEnableStatus.SelectedValue != "all")
  11.             {
  12.                 q.And(XUser.EnabledColumn).IsEqualTo(rblEnableStatus.SelectedValue == "enabled" ? true : false);
  13.             }
复制代码
如果没有 Where("1").IsEqualTo("1") ,那下面出现的第一个查询条件就要是 Where ,这样判断就麻烦了。
作者: 魔小涛    时间: 2012-12-10 19:05
{:soso_e102:}  




欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4