说明:当前只是针对SQLServer数据,其它的数据库我也没有用过,不过在基础上扩展重构工作量不是很大.

IN语句
SQL语句对象化,先看示例代码. 'SELECT XSH_HT_合同.合同编号,XSH_HT_合同.合同名称 FROM XSH_HT_合同 WHERE XSH_HT_合同.合同编号 IN  (@p70798e19b6c748519ab37515e1884d8b,@pd0873785429445d8868c51dfd310b31f,@p7d84bb7aa5e340909e02527948ca63c7) GROUP BY XSH_HT_合同.合同编号,XSH_HT_合同.合同名称 ORDER BY XSH_HT_合同.合同编号 ASC
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select(en._合同编号, en._合同名称). _
SQL语句对象化,先看示例代码.                                                                         From(en).WHERE(en._合同编号.Filter._In(
"020482""020503""020539")). _
SQL语句对象化,先看示例代码.                                                                         GroupBy(en._合同编号, en._合同名称). _
SQL语句对象化,先看示例代码.                                                                         OrderBy(en._合同编号.OrderBy(SortDirection.DESC))
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)

IN语句
SQL语句对象化,先看示例代码.       'SELECT  *  FROM XSH_HT_合同 WHERE XSH_HT_合同.合同编号 IN  ( SELECT  DISTINCT XSH_HT_合同.合同编号 FROM XSH_HT_合同 WHERE XSH_HT_合同.销售员=@pc93cea79f9884d15ae19367bdcab5d0c)
SQL语句对象化,先看示例代码.
        '使用IN 语句返回所有[邓山]的合同.
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select(). _
SQL语句对象化,先看示例代码.                        From(en). _
SQL语句对象化,先看示例代码.                        WHERE(en._合同编号.Filter._In( _
SQL语句对象化,先看示例代码.                                                     Lily.OQL.BuilderSql.Select(
0True, en._合同编号). _
SQL语句对象化,先看示例代码.                                                    From(en). _
SQL语句对象化,先看示例代码.                                                    WHERE(en._销售员.Filter.EqualTo(
""))) _
SQL语句对象化,先看示例代码.                               )
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)
IN语句
SQL语句对象化,先看示例代码.   'SELECT  *  FROM XSH_HT_合同 WHERE XSH_HT_合同.合同编号 IN  ( SELECT  DISTINCT XSH_HT_合同.合同编号 FROM XSH_HT_合同 WHERE XSH_HT_合同.销售员=@pc93cea79f9884d15ae19367bdcab5d0c)
SQL语句对象化,先看示例代码.
        '使用IN 语句返回所有[邓山]的合同.
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select(). _
SQL语句对象化,先看示例代码.                        From(en). _
SQL语句对象化,先看示例代码.                        WHERE(en._合同编号.Filter._In( _
SQL语句对象化,先看示例代码.                                                     Lily.OQL.BuilderSql.Select(
0True, en._合同编号). _
SQL语句对象化,先看示例代码.                                                    From(en). _
SQL语句对象化,先看示例代码.                                                    WHERE(en._销售员.Filter.EqualTo(
""))) _
SQL语句对象化,先看示例代码.                               )
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)

  '左匹配
SQL语句对象化,先看示例代码. 'SELECT  *  FROM XSH_HT_合同 WHERE XSH_HT_合同.合同编号 IN  ( SELECT  DISTINCT XSH_HT_合同.合同编号 FROM XSH_HT_合同 WHERE XSH_HT_合同.销售员=@p382468e15c184543b73bbd0434f8440a) OR XSH_HT_合同.销售员 Like @p1b7b18f217a846e2ae7391320326e857
SQL语句对象化,先看示例代码.
        '使用IN 和 Like 语句
SQL语句对象化,先看示例代码.
        '查找销售员是邓和姓张的销售员合同
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select(). _
SQL语句对象化,先看示例代码.                        From(en). _
SQL语句对象化,先看示例代码.                        WHERE(en._合同编号.Filter._In( _
SQL语句对象化,先看示例代码.                                                        Lily.OQL.BuilderSql.Select(en._合同编号). _
SQL语句对象化,先看示例代码.                                                        From(en). _
SQL语句对象化,先看示例代码.                                                        WHERE(en._销售员.Filter.EqualTo(
"")) _
SQL语句对象化,先看示例代码.                                                    ). _
SQL语句对象化,先看示例代码.                                                    _Or _
SQL语句对象化,先看示例代码.                                                    (en._销售员.Filter.StartWith(
"")) _
SQL语句对象化,先看示例代码.                               )
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)

'Like包含
SQL语句对象化,先看示例代码.      'SELECT  *  FROM XSH_HT_合同 WHERE XSH_HT_合同.销售员 Like @pcb75950fbe764c2ba94112ecbaac7eb5
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select().From(en).WHERE(en._销售员.Filter.Include(""))
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)
'Like右匹配
SQL语句对象化,先看示例代码.   'SELECT  *  FROM XSH_HT_合同 WHERE XSH_HT_合同.销售员 Like @p6ccb3db2ac984a4ea1d908c09dde5464
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select().From(en).WHERE(en._销售员.Filter.EndWith("公司"))
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)
  'Like字段左匹配
SQL语句对象化,先看示例代码.  'SELECT XSH_HT_合同.乙方代表,XSH_HT_合同.销售员 FROM XSH_HT_合同 WHERE XSH_HT_合同.乙方代表 Like XSH_HT_合同.销售员+'%'
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select(en._乙方代表, en._销售员).From(en).WHERE(en._乙方代表.Filter.StartWith(en._销售员))
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)
   '字段相等
SQL语句对象化,先看示例代码.   'SELECT  *  FROM XSH_HT_合同 WHERE XSH_HT_合同.销售员=XSH_HT_合同.乙方代表
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select(en._销售员, en._乙方代表).From(en).WHERE(en._销售员.Filter.EqualTo(en._乙方代表))
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)
   '字段等于值
SQL语句对象化,先看示例代码.    'SELECT  *  FROM XSH_HT_合同 WHERE XSH_HT_合同.销售员=@pe72d31922f434cd89abbadd51d2cf566
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select().From(en).WHERE(en._销售员.Filter.EqualTo(""))
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)
NOt IN
SQL语句对象化,先看示例代码. 'SELECT  *  FROM XSH_HT_合同 WHERE  NOT XSH_HT_合同.销售员 IN  (@pe8b92721ff8c42548fb96965da962a9a)
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select().From(en).WHERE(en._销售员.Filter.NotIn("邓山"))
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)

not select

SQL语句对象化,先看示例代码.        'SELECT  *  FROM XSH_HT_合同 WHERE  NOT XSH_HT_合同.合同编号 IN  ( SELECT  DISTINCT XSH_HT_合同.合同编号 FROM XSH_HT_合同 WHERE XSH_HT_合同.销售员=@p925776458a204a4d9999a1fae33470ec)
SQL语句对象化,先看示例代码.
        Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select(). _
SQL语句对象化,先看示例代码.                        From(en). _
SQL语句对象化,先看示例代码.                        WHERE(en._合同编号.Filter.NotIn( _
SQL语句对象化,先看示例代码.                                                     Lily.OQL.BuilderSql.Select(
0True, en._合同编号). _
SQL语句对象化,先看示例代码.                                                    From(en). _
SQL语句对象化,先看示例代码.                                                    WHERE(en._销售员.Filter.EqualTo(
"邓山"))) _
SQL语句对象化,先看示例代码.                               )
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)
exists
SQL语句对象化,先看示例代码.        'SELECT  *  FROM XSH_HT_工程信息 WHERE  EXISTS  ( SELECT  *  FROM XSH_HT_合同 WHERE XSH_HT_工程信息.合同编号=XSH_HT_合同.合同编号)
SQL语句对象化,先看示例代码.
        Dim cp As New XSH_HT_工程信息
SQL语句对象化,先看示例代码.        
Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select().From(cp).WHERE(cp.Exists(cp._合同编号.Filter.EqualTo(en._合同编号), en))
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)

not exists

SQL语句对象化,先看示例代码.  'SELECT  *  FROM XSH_HT_工程信息 WHERE  NOT EXISTS  ( SELECT  *  FROM XSH_HT_合同 WHERE XSH_HT_工程信息.合同编号=XSH_HT_合同.合同编号)
SQL语句对象化,先看示例代码.
        Dim cp As New XSH_HT_工程信息
SQL语句对象化,先看示例代码.        
Dim cmd As Lily.PL.PersistenceLayerCommandBase = Lily.OQL.BuilderSql.Select().From(cp).WHERE(cp.NotExists(cp._合同编号.Filter.EqualTo(en._合同编号), en))
SQL语句对象化,先看示例代码.        
Me.DataGrid1.DataSource = da.GetDataTable(cmd)

欢迎各位拍砖,这样的查询方式,简便明了吗?
XSH_HT_工程信息 是实体对象
PersistenceLayerCommandBase 是命令对象所有的select,update,delete,insert into 语句的构造都是从此类派生.
da 是一个操作命令对象的适配器.

相关文章:

  • 2021-12-24
  • 2021-06-22
  • 2021-06-12
  • 2022-01-06
  • 2022-12-23
猜你喜欢
  • 2021-09-28
  • 2021-12-18
  • 2022-12-23
  • 2022-12-23
  • 2021-11-22
  • 2022-01-10
  • 2021-10-30
相关资源
相似解决方案