[VB.NET]这样的sql应该怎么写?兄弟们帮帮忙

来源:互联网 发布:网络机顶盒推荐 编辑:程序博客网 时间:2024/04/25 16:02
VB.NET源码-156个实用实例哦……<script type="text/javascript"><!--google_ad_client = "pub-8333940862668978";/* 728x90, 创建于 08-11-30 */google_ad_slot = "4485230109";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
这样的sql应该怎么写?兄弟们帮帮忙
表里面有NAME,PRODUCT,PRICE,DATE 4个字段,在操作界面上也相应的画出4个TEXTBOX,可供填入检索条件,如果只写其中一个就按一个条件查询,如果写两个条件就按两个条件查询,如果是3个就按3个条件查询,如果是全部就按全部条件查询.这样的程序片断应该怎么写??????
__________________________________________________________________________
string strSql= select * from tb ;
string filter=string.Empty;
if(txtName.Text!=string.Empty)
{
filter= where NAME like % +txtName.Text+ % ;
}
if(txtPRODUCT.Text!=string.Empty)
{
if(filter.Length> 0)
{
filter+= and ;
}
filter+= PRODUCT like % +txtPRODUCT.Text+ % ;
}
if(txtPRICE.Text!=string.Empty)
{
if(filter.Length> 0)
{
filter+= and ;
}
filter+= PRICE like % +txtPRICE.Text+ % ;
}
....
....
strSql=filter==string.Empty?strSql:strSql+filter;

//执行strSql返回结果,剩下略
__________________________________________________________________________
给你一部分吧


Dim s_SQL As String
s_SQL = SELECT * FROM zzz_View_Gzcx WHERE 1=1

If txtYgbh.Text.Trim.Length <> 0 Then
s_SQL = s_SQL & AND 员工编号 like % & txtYgbh.Text.Trim & %
End If

If txtYgxm.Text.Trim.Length <> 0 Then
s_SQL = s_SQL & AND 员工姓名 like % & txtYgxm.Text.Trim & %
End If
__________________________________________________________________________
对于这个,我一般都是采用比较笨的方法;
先确定textbox1=name
textbox2=PRODUCT
textbox3=PRICE
textbox4=date
sql中的like
如果你的textbox1中有数据,而tb2,tb3,tb4都没有,
那么就应该是
select * from tablename
where name like @tb1 and PRODUCT like @tb2
and PRICE like @tb3 and date like @tb4
那么当前tb1是有值的,那么你的name like tb1.value
而tb2,tb3,tb4没有值,那么你可以传入的参数都是 % ~
这样做是有缺点的。就是sql执行效率的问题。如果不顾及的话,可以这样做。
__________________________________________________________________________
简单的技巧:

select * from tablename where 1=1

其他的条件就都可以用 AND 拼接了.
__________________________________________________________________________
“where 1=1 ” 这样的代码毫无意义,垃圾代码就是指这种.
__________________________________________________________________________
楼上的没啥经验吧...

用个1=1,能省掉多少判断。。。比你那么多判断简单有效的多。。。
__________________________________________________________________________
编码风格不同,呵呵~~我周围的人都不喜欢这样写,包括技术总监.
没意义的代码看着烦.
__________________________________________________________________________
原创粉丝点击