CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

高分求解一数据库难题!解答后立即给分!

楼主TangDY(Tang)2003-04-02 07:28:59 在 Delphi / VCL组件开发及应用 提问

现在同一数据库里有两张表:表一和表二。  
   
  表一里面记录的是员工的详细信息,表二里面记录的主要是部门名称。  
   
  有一窗口数据库就连接的是表一,运行程序,添加数据,通过选取部门名称下拉列表框中的部门名称[当程序运行的时候就把表二里面的部门名称全部插入到一个下拉列表框中]和填写了其它的一些数据后保存,我样怎样才能让这个部门名称在窗口中显示中文名称,而在数据库中却保存的是该部门的唯一编号呢!  
   
  而且在查看以前添加的数据也要求窗口中示中文名称!  
   
   
                                                                                            写出代码者有高分! 问题点数:0、回复次数:7Top

1 楼careerist()回复于 2003-04-02 07:34:59 得分 0

这需要在表二中至少有两个字段,一个是部门的唯一编号,另一个是部门的中文名称,这样才能达到你的要求。Top

2 楼Chayezi(yes)回复于 2003-04-02 08:48:43 得分 0

用DBLookupComboBox控件可实现你的要求,其中  
  DataSource和DateField是你要保存的表的数据源和对应字段;  
  ListSource是下拉的数据源  
  listField是下拉显示的字段,例如部门的中文名称的字段;  
  keyField是对应的部门id的字段  
   
  保存的时候像其他数据库控件那样保存就行了  
  Table1.post;Top

3 楼DelUser(探索者)回复于 2003-04-02 08:54:32 得分 0

DBLookupComboBoxTop

4 楼blueshu(学习Oracle9i)回复于 2003-04-02 08:55:27 得分 0

同意楼上Top

5 楼ycxuyuq(注册失败)回复于 2003-04-02 08:56:40 得分 0

这也叫数据库难题吗?  
  或者在表二中增加一个部门中文名称字段,或者新建一个部门ID与中文名称的对应关系表。  
  如果不希望在数据库里保存中文名称,那么在程序里建对应关系数组好了,运行时去查找。  
  如  
  var  
      relation   :   array[1..2,1..10]   of   string;  
  begin  
      relation[1][1]   :=   '1';  
      relation[1][2]   :=   '开发室'  
      ...  
  end;  
  编程重要的是思想,并不是一味代码,这样水平才有真正提高  
  Top

6 楼lovelymelon(小人物)回复于 2003-04-02 08:57:44 得分 0

对正如careerist()   (   )   所说的,表二至少要又两个字段,一个编号,另一个是部门名称。  
  在向下拉框导入时导入部门名称,在保存时保存编号。  
  向下拉框中导入部门名称:  
  table2.open;  
  table2.first;  
  i:=table2.recordcount;  
  if   i>0   then  
  beign  
      for   j:=0   to   i-1   do  
          begin  
              s:=table2.fieldvalues['部门名称'];  
              if   pos(s,combobox1.items.text)<=0   then  
                  combobox1.items.add(s);  
              table2.next;  
          end;  
  end;  
  向数据库中保存:  
  table2.open;  
  with   table2   do  
  locate('编部门名称,combobox1.text);  
  s:=table2.fieldvalues['编号'];  
  table1.open;  
  table1.append;  
  table1.fieldvalues['字段名']:=s;  
  .  
  .  
  .  
  table1.post;Top

7 楼dyf2001(西风)回复于 2003-04-02 08:58:16 得分 0

初级问题  
  lookupTop

相关问题

  • 一个数据库的小问题,急求解答~~
  • 数据库字段拷贝问题,请求解答!!
  • 在线急等!!!!数据库关闭问题,跪求解答!!!
  • 各位高手,我有一数据库密码登录问题,请求解答
  • 水晶报表登陆数据库的问题,请求解答,谢谢!
  • 数据库维护计划自动做备份,出问题,请求解答
  • 怎样下载服务器端数据库中的表?高分求解答
  • 高分请求解答:调用DLL窗体的问题,数据库操作
  • 不改变数据库结构,如何实现以下功能!拜求解答
  • 求解数据库问题

关键词

  • 字段
  • 数据库
  • 中文
  • 数据
  • 名称
  • 部门
  • 保存
  • 表
  • 导入
  • 程序

得分解答快速导航

  • 帖主:TangDY

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo