Delphi combobox连数据库,先有一个combobox选年级,按按钮後,另一个combobox中可选该年级的学生姓名
请问要如何实现,先有一个combobox1选年级,按按钮後,另一个combobox2中可选该年级的学生姓名Table名称为学生基本资料,对应的属性有姓名丶年级似乎要写SQ...
请问要如何实现,先有一个combobox1选年级,按按钮後,另一个combobox2中可选该年级的学生姓名
Table名称为学生基本资料,对应的属性有姓名丶年级
似乎要写SQL,但小弟不知要如何判断使用者选到哪个item,例如一年级丶二年级...
也不知combobox2要如何依据combobox1,显示数据库内对应年级姓名的资料
按下按钮後,再把使用者所选的姓名及年级,自动放在Label中
求各位高手帮解惑,卡好久了,希望能有代码 展开
Table名称为学生基本资料,对应的属性有姓名丶年级
似乎要写SQL,但小弟不知要如何判断使用者选到哪个item,例如一年级丶二年级...
也不知combobox2要如何依据combobox1,显示数据库内对应年级姓名的资料
按下按钮後,再把使用者所选的姓名及年级,自动放在Label中
求各位高手帮解惑,卡好久了,希望能有代码 展开
2个回答
展开全部
这是要写代码的,你的思路很正确,有人喜欢用DBcombobox组件来直接连接表中的字段,这样就会出现很重复项.
这种方法在编辑数据和查询数据的过程都可以使用,有时不用敲击大键盘,只用小键盘就可以新增一条记录.查询数据使用这种方法更妙,在第一个COMBOBOX中选择一项,界面表格中的数据记录就少了很多,在再第二个BOX中选择一项,界面表格中的数据记录又少了很多,最后只剩下你要找的那条记录了.
这种效果的实现,界面需要COMBOBOX组件若干,ADOdataset组件一个(用二个最好),网格组件一个,以学校名称,年级,班,组,学生姓名这张表为例.当放有这些组件的窗体显示时(显示事件),为第一个COMBOBOX组件加载学校名称,其它不管,当第一个COMBOBOX组件发生更新事件时,再为第二个COMBOBOX组件加载年级,如此类推,一直加载到学生姓名.
它的机制是:用一个ADODATASET组件通过数据源组件与界面上的网格组件连接,让它显示操作的数据表中数据.另外一个ADODATASET组件专门用来为COMBOBOX加载数据项.
没有时间,有事,下次再说
这种方法在编辑数据和查询数据的过程都可以使用,有时不用敲击大键盘,只用小键盘就可以新增一条记录.查询数据使用这种方法更妙,在第一个COMBOBOX中选择一项,界面表格中的数据记录就少了很多,在再第二个BOX中选择一项,界面表格中的数据记录又少了很多,最后只剩下你要找的那条记录了.
这种效果的实现,界面需要COMBOBOX组件若干,ADOdataset组件一个(用二个最好),网格组件一个,以学校名称,年级,班,组,学生姓名这张表为例.当放有这些组件的窗体显示时(显示事件),为第一个COMBOBOX组件加载学校名称,其它不管,当第一个COMBOBOX组件发生更新事件时,再为第二个COMBOBOX组件加载年级,如此类推,一直加载到学生姓名.
它的机制是:用一个ADODATASET组件通过数据源组件与界面上的网格组件连接,让它显示操作的数据表中数据.另外一个ADODATASET组件专门用来为COMBOBOX加载数据项.
没有时间,有事,下次再说
展开全部
在combobox 的onchange事件里定义一个事件,
网络中,更新快时可以用SQL方法去做..MYDB为DBQUERY控件
with myDB do
begin
sql.close;
sql.clear;
sql.text:='select name from table where grade='''+combobox1.text+'''';
sql.prepare;
sql.open;
end;
局域网或本机更新慢时可用SQL的过滤去做...方法都很简单,,,,
MYDB.filtered:=false;
MYDB.filter:='name='+combobox.text;
MYDB.filtered:=true;
手头没有DELPHI ,可能语法不准确.....
网络中,更新快时可以用SQL方法去做..MYDB为DBQUERY控件
with myDB do
begin
sql.close;
sql.clear;
sql.text:='select name from table where grade='''+combobox1.text+'''';
sql.prepare;
sql.open;
end;
局域网或本机更新慢时可用SQL的过滤去做...方法都很简单,,,,
MYDB.filtered:=false;
MYDB.filter:='name='+combobox.text;
MYDB.filtered:=true;
手头没有DELPHI ,可能语法不准确.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询