World Of ιζσεα.

The Dark Time Will Pass

 

NetTiers学习笔记07---查询类的使用

        public void Test()
        {
            SqlFilterBuilder
<ContractColumn> filter = new SqlFilterBuilder<ContractColumn>();  //test SqlFilterBuilder

            
//ParameterizedSqlFilterBuilder<ContractColumn> filter = new ParameterizedSqlFilterBuilder<ContractColumn>();  //test ParameterizedSqlFilterBuilder

            filter.Junction 
= SqlUtil.AND;

            filter.Append(ContractColumn.FContractPerson, 
"Jack , Ban , Tom");    //or jack or ban or tom

            filter.Append(ContractColumn.FName, 
"*-02-01");        // like

            filter.AppendIsNotNull(ContractColumn.FName);    
//is not null


            filter.BeginGroup(SqlUtil.AND);    
//开始一个分组

            filter.Junction 
= String.Empty;        //"("后面没有and

            filter.AppendIn(ContractColumn.FHouseId, 
"1,2,3,4");            //in

            filter.Junction 
= SqlUtil.OR;

            
string begindate = new DateTime(200511).ToString();
            
string enddate = DateTime.Now.ToString();

            filter.AppendRange(ContractColumn.FDate, begindate, enddate);    
//范围

            filter.EndGroup();                    
//结束分组

            
string result = filter.ToString();        //test1
            
//SqlFilterParameterCollection result = filter.GetParameters();        //test2
        }

SqlFilterBuilder:
(fContractPerson = 'Jack' OR fContractPerson = 'Ban' OR fContractPerson = 'Tom'AND (fName LIKE '%-02-01'AND (fName IS NOT NULLAND ( (fHouseID IN ('1','2','3','4')) OR (fDate >= '2005-1-1 0:00:00' AND fDate <= '2007-7-10 13:39:06') )

SqlFilterParameterBuilder:
(fContractPerson = @Param0 OR fContractPerson = @Param1 OR fContractPerson = @Param2AND (fName LIKE @Param3AND (fName IS NOT NULLAND ((fHouseID IN (@Param4,@Param5,@Param6,@Param7)) OR (fDate >= @Param8 AND fDate <= @Param9))

posted on 2007-07-10 13:35 Ψιζσεα. 阅读(1327) 评论(16)  编辑 收藏 所属分类: 技术.NetTiers

评论

#1楼  2007-07-10 15:29 yiwl [未注册用户]

写的很好,很好,很好... ...
  回复  引用    

#2楼  2007-08-19 21:27 QQQQXSH [未注册用户]

不错,看到研究nettiers的同行了
nettiers确实不错,可以说是软件行业的新思维了
------------

但说实话SqlFilterBuilder的安全漏洞实在太大了~
俺轻易不敢用啊   回复  引用    

#3楼 [楼主] 2007-08-20 00:54 iCaca      

:) NetTiers 还是会帮你判断 SQL注入的   回复  引用  查看    

#4楼  2007-10-20 23:34 h4 [未注册用户]

不知道QQQQXSH所说的安全漏洞在什么地方?   回复  引用    

#5楼  2008-01-03 14:29 David—— [未注册用户]

新的思维   回复  引用    

#6楼  2008-01-08 19:06 静水≈深流      

问一下 NetTiers 对 oracle 数据库支持好吗!
你提到的 时间 范围 生成的 sql 语句(fDate >= '2005-1-1 0:00:00' AND fDate <= '2007-7-10 13:39:06') 在oracle 中 to_date(xxxx)   回复  引用  查看    

#7楼  2008-01-08 19:08 静水≈深流      

比其 NBear 那个更优秀点   回复  引用  查看    

#8楼 [楼主] 2008-01-10 23:17 Ψιζσεα.      

@静水≈深流
不支持oracle

  回复  引用  查看    

#9楼  2008-09-09 17:15 S4 [未注册用户]

类似inner join的表关联查询 是不是只能DataSetExecute   回复  引用    

#10楼 [楼主] 2008-09-09 17:20 Ψιζσεα.      

是情况而定吧, 表比较少的, 可以用deepload, 关系复杂的可以用视图
如果是做一个列表(只是用于绑定grid), 用视图比较好   回复  引用  查看    

#11楼  2008-09-09 17:50 S4 [未注册用户]

我碰到的问题就是类似
select b.* from a,b where a.id=b.id

不知道在nettires里怎么写   回复  引用    

#12楼 [楼主] 2008-09-09 18:03 Ψιζσεα.      

类似于 "where a.id=b.id" 的查询条件, 用视图的方法比较容易实现

建一个视图, 生成后, 会有[视图名]的新对象
查询的方法跟表的一样   回复  引用  查看    

#13楼  2008-09-09 18:14 S4 [未注册用户]

非常感谢   回复  引用    

#14楼  2008-10-06 15:55 Miler      

非常感谢,学到了很多东西   回复  引用  查看    

#15楼  2008-10-08 23:30 luckey [未注册用户]

如果需要
select * from tAAA where Field1 > Field2 这样的查询
要怎么实现?
Field1 Field2都是 tAAA 表的一个字段   回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-07-10 13:53 编辑过

相关链接:
 

导航

统计

与我联系

搜索

 

常用链接

留言簿

我参加的小组

我的标签

随笔分类(50)

随笔档案(17)

新闻档案(1)

相册

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜