我要作一个查询学生的功能,他们的属性有学院,专业,年级,班级以及他们自己的姓名,性别,出生年月和籍贯,这些信息是可以让用户随意输入,作为查询的条件,但是我在作这个功能的时候,发现属性太多,我要写很多的if..then语句,我大概算了一下,将近有200多个可能的查询。但是这样好像又不太现实,我想请教各位见多识广的大侠,有没有别的简单一点的做法。
  万分感谢所有热心的人!

解决方案 »

  1.   

    楼主可以这样,这只是个思路:
    建一个表,字段是:字段名,数据,符号,连接符;
    然后加3个组合框,分别做为字段名,符号(=,><等),连接符(AND,OR)并初始化好,以便用户不用输入,直接选择
    接着,用户每输入一个条件就加入到表中,当选择查询时,就把表记录一条条读出来连起来就是一个SQL语句了,也可把那3个组合框嵌到DBGRID中去
      

  2.   

    首先非常感谢你的帮助xiaoqiang123!
      但是我的学院,专业,年级,班级属性是在不同的表中存储的,他们的关系是一层比一层具体,举个例子说,如果用户想查询某学院姓张的所有学生,我的要:通过学院找所以的该学院专业,再找专业下的年级,再通过年级找到所以的班级,通过这些班级再从学生表中找姓张的学生,因为表的不同,好像不能按照你说的那样作把?
      请多多指教!
      

  3.   

    作一个比较通用的查询模块,
    让用户选择查询的表(当然都是汉字显示的),设置查询条件。你后台转换为sql语句,
    之后执行sql语句
      

  4.   

    数据库设计太烂了,一个院校表(所有学校和代码),一个专业表(专业名称,代码,学校代码),学生表(学生学号,详细信息,学校代码,专业代码)。查询学生“张”,就在学生表中查找“select × from 学生表 where 学生姓名 like‘张’and 学校=‘条件’and 专业 =‘条件’”÷÷÷÷÷÷÷÷÷÷建议多看数据库设计的书
      

  5.   

    同意xuhongli_1978(星失)的说法,个人认为数据库的设计要尽可能简单,一张表可以实现,何必把它分成几张呢.