一个SQL语句的问题,请指教。多谢(20分)

  • 主题发起人 主题发起人 多多帮助
  • 开始时间 开始时间

多多帮助

Unregistered / Unconfirmed
GUEST, unregistred user!
在存储过程中<br>如果有姓名,年龄等<br>我现在想在一个文本框中如果输入“张三”就查出相应数据,如果不输入就查所有的数据<br>还有年龄是个INT型。也是一样。如果文本框中为空就查所有。有内容就查相应数据。怎么设置<br>是不是varchar(8)='%',好像不能用。还有INT型的怎么设呢。谢谢
 
create procedure dbo.GetData<br>&nbsp; @Name varchar(8),<br>&nbsp; @Age int<br>AS<br>if( Len(@Name)=0 )<br>begin<br>&nbsp; if( @Age=0 )<br>&nbsp; begin<br>&nbsp; &nbsp; Select * From Tb1<br>&nbsp; end<br>&nbsp; else<br>&nbsp; begin<br>&nbsp; &nbsp; Select * From Tb1 Where Age=@Age<br>&nbsp; end<br>end<br>else<br>begin<br>&nbsp; if( @Age=0 )<br>&nbsp; begin<br>&nbsp; &nbsp; Select * From Tb1 Where Name=@Name<br>&nbsp; end<br>&nbsp; else<br>&nbsp; begin<br>&nbsp; &nbsp; Select * From Tb1 Where Age=@Age And Name=@Name<br>&nbsp; end<br>end<br><br>GO<br><br>——SQL Server上差不多应该是这样
 
if Edt_Name = '' then<br>begin<br>&nbsp; ShowMessage('请输入姓名!');<br>&nbsp; Exit;<br>end;<br>with adoQuery1 do<br>begin<br>&nbsp; Close;<br>&nbsp; Sql.Clear;<br>&nbsp; Sql.Add('select * from table where 1=1'');<br>&nbsp; if Edt_Name.Text &lt;&gt;'' then<br>&nbsp; begin<br>&nbsp; &nbsp; Sql.Add(' and name='''+Edt_Name.Text+'''')<br>&nbsp; end; <br>&nbsp; if Edt_age.Text &lt;&gt;'' then<br>&nbsp; begin<br>&nbsp; &nbsp; Sql.Add(' and age='+Edt_age.Text)<br>&nbsp; end;<br>&nbsp; try<br>&nbsp; &nbsp; Open;<br>&nbsp; except<br>&nbsp; &nbsp;ShowMessage('查询出错!');<br>&nbsp; end;<br><br>end;
 
你输入姓名和年龄的是同一个控件吗??他们的逻辑关系呢?
 
输入姓名和年龄不是同一控件。就是想实现查询时如果文本框中输入值了,就查对应的。如果没有输入就查全部。谢谢
 
to 李翔鹏 我要的是在存储过程中的,谢谢
 
多人接受答案了。
 
后退
顶部