大家好,我是一个DELPHI初学者,我现在想自己做一个班级管理系统,但是其中有一些功能不会实现,请帮助!
问题1.我进入主窗体后点击查询按钮,然后在DBGrid中显示相应的记录,查询条件是学生姓名,但是问题现在就出现了,我的DBGrid中本来有15个字段,后来我删除了学生成绩的几个字段,现在剩下8个字段包括在2个表中Ssqk(宿舍情况)和XSXX(学生信息)问题就是
我的这两个表中都有个Student_Name字段我现在想点击查询可是不知道怎么写了我的代码是:Main_ADOQuery.Close;
   Main_ADOQuery.SQL.Clear;
   Main_ADOQuery.SQL.Add('select * from XSQK');
   Main_ADOQuery.SQL.Add('Inner join Ssqk');
   Main_ADOQuery.SQL.Add('on Student_Name='''+TJ_edit.Text+'''');
   Main_ADOQuery.Active:= true;
可是不能实现,我想是因为这两个表中有相同的字段的原因,请帮忙!
问题2:
   还有一个按钮是显示全部信息在DBGrid中,但是我只能点击一次,意思就是说打开主窗体点击 显示全部 可以实现,再点击查询,返回来再点   显示全部 就不可以了,怎么样实现 每次点每次 都可以显示  一开始我再formcreate里写上了query的close事件,这样点击显示全部就可以显示一次!请帮忙!
问题3:
   我在主窗体中还有几个radiobutton当点击它们时要有作用请问怎么关联和button查询
.模糊查询!
   

解决方案 »

  1.   

    1.   Main_ADOQuery.SQL.Add('select * from XSQK');
       Main_ADOQuery.SQL.Add('Inner join Ssqk');
       Main_ADOQuery.SQL.Add('on xsqk.student_name=ssqk.student_name');
      Main_ADOQuery.SQL.Add('xsqk.Student_Name='''+TJ_edit.Text+'''');
      

  2.   

    1.--------sorry丢了点
       Main_ADOQuery.SQL.Add('select * from XSQK');
       Main_ADOQuery.SQL.Add('Inner join Ssqk');
       Main_ADOQuery.SQL.Add('on xsqk.student_name=ssqk.student_name');
      Main_ADOQuery.SQL.Add(' where xsqk.Student_Name='''+TJ_edit.Text+'''');
      

  3.   

    2\不明白你要干什么
    3if radiobuttion1.check then 
    .... 
    模糊:select * from xsqk where sutdent_name like '王%'
      

  4.   

    to jinjazz你写的SQL语句好象不可以吧!
      

  5.   

    select xsqk.*,ssqk.* from ...后面都一样..上面的同学你都这么多裤衩了,不会直接指出来吗?
      

  6.   

    第二个问题的意思是说:
     我现在又两个按钮一个是查询按钮,一个是显示全部记录按钮, 我想一打开主窗体DBGrid中是空的没有记录,然后点击全部显示,就能够显示表中的全部记录,然后我再点击查询按钮后,返回来再点击全部显示按钮,要让它仍然能够全部显示记录!
      

  7.   

    在刚开始的时候设置connected为false,点开始时才让他查询!点全部显示的时候清空ADOQuery,重新加入查询语句!
      

  8.   

    还有个问题就是,我想让DBGrid的列是固定的,意思就是说我浏览的时候不能够托拽间隔线
      

  9.   

    to  jinjazz不能够实现呀,老大!再帮帮忙!
    代码没错但是功能没有实现!
      

  10.   

    --你先保证你的sql语句是正确的-->也就是在查询分析器里能通过
    --给你几个连表的范例:数据库是sqlserver2000自带的northwind
    use northwind
    --------------------------连接1
    select a.orderid,a.customerid,b.firstname from orders a,employees b
    where a.employeeid=b.employeeid
    and b.employeeid<8 
    ---------------------------连接2
    select orders.orderid,orders.customerid,employees.firstname
     from orders inner join employees on orders.employeeid=employees.employeeid
    where employees.employeeid<8
    ---------------------------模糊
    select orders.orderid,orders.customerid,employees.firstname
     from orders inner join employees on orders.employeeid=employees.employeeid
    where employees.firstname like 'a%'
    -----------------------------你在现实全部按钮的代码是什么?贴出来。
    --你是不是简单的query.close; query.open ??你看看里面的执行语句
      

  11.   

    还有个问题就是,我想让DBGrid的列是固定的,意思就是说我浏览的时候不能够托拽间隔线
    ------------------------------
    设置dbgrid的options中的dgcolumnresize属性为false
      

  12.   

    第二个问题
    点全部显示
    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('select * from 表');
      open;
    end;
      

  13.   

    你的第一个问题应该用到关联字段查询吧!
    试试select * from XSQK 
      Where Student_Name(select * from Ssqk where XSQK.Student_Name=Ssqk.Student_Name);
      

  14.   

    to zhlwyy:
     还是不行呀!】
    帮帮忙!
    郁闷死了