关于分类别查找的问题,很菜的问题,急!!!在线等

ballnan 2005-04-11 07:16:56
我的页面 上有三个txtbox 分别是txt_SupplierID,txt_MaterialName,txt_Datetime
我想根据这三个控件上所填的内容从数据表中查找相应的内容
而这三个控件是随意组合的
就是说我填一个控件 要找出相对的内容,随意两个也要找出相对内容
而我不想用if语句
用case 语句能实现吗??
还有没有别的方法
请给出具体的写法
谢谢
...全文
100 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzzjaychung 2005-04-19
  • 打赏
  • 举报
回复
哈哈哈,,

大家的答案都还是没有离开IF。。

不知楼主是啥意思,没IF怎么活啊。。。

是不是?
LoveCherry 2005-04-11
  • 打赏
  • 举报
回复
首先设定
string sql="select * from tb where 1=1"
if(txt_SupplierID.Text!="")sql+=" and SupplierID='"+txt_SupplierID.Text+"'"
if(txt_MaterialName.Text!="")sql+=" and MaterialName='"+txt_MaterialName.Text+"'"
if(txt_Datetime.Text!="")sql+=" and Datetime='"+txt_Datetime.Text+"'"
这样
任意不为空的情况作为查询条件
zzzjaychung 2005-04-11
  • 打赏
  • 举报
回复
楼主好像一定要把简单的问题复杂化哦。。。。。。。。

如果真想这样做,你可以这样试试,算法如下:

设三个变量,值分别为1、2、4,
txt_SupplierID_Num=1
txt_MaterialName_Num=2
txt_Datetime_Num=4

再设一个数组(6) STRING类型
事先将ARRAY(1-7)设置好SELECT 语句:共6条语句(不同的TEXT组合查询)

再设一个SUM变量(存储加和的值)

在每个TEXTBOX的LEAVE事件中,如果TEXT有值,则对应的NUM为相应值,否则为0

在用户查询时,将txt_SupplierID_Num、txt_MaterialName_Num、txt_Datetime_Num加和,(和为SUM)
然后调用ARRAY(SUM)

这样做在查询时就不用IF或是CASE了。不过要把东东事先准备好。
不过没有特殊情况,我可不推荐你用这个烂算法哦。
还有就是当TEXT多了的时候,这个方法不能用。因为ARRAY的大小是阶乘的。
ballnan 2005-04-11
  • 打赏
  • 举报
回复
不想用If语句
有别的方法吗??
landlordh 2005-04-11
  • 打赏
  • 举报
回复
win,eg.:

dim sqladd as string
sqladd = ""

if len(trim(txt_SupplierID.text))>0 then
'这里是算是字符型
sqladd=sqladd &" where supplierid=N'"& txt_SupplierID.text &"' "
end if
if len(trim(txt_MaterialName.text))>0 then
if len(sqladd)>5 then
sqladd=sqladd &" and "
else
sqladd=sqladd &" where "
end if
sqladd=sqladd &" supplierid=N'"& txt_MaterialName.text &"' "
end if
if len(trim(txt_Datetime.text))>0 then
if len(sqladd)>5 then
sqladd=sqladd &" and "
else
sqladd=sqladd &" where "
end if
sqladd=sqladd &" supplierid=N'"& txt_Datetime.text &"' "
end if

dim sql as string = "select top 100 * from tab1 "& sqladd

可以作适当的修改

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧