请教:C++builder使用DBGrid查询时总是闪烁,怎么解决。

return_sir 2016-07-27 11:33:22
最近做了一个私人租房系统,里面有九个表,基它功能都基本完成,就是要统计时要将九个表的ZJ(租金)字段统计求和,
功能倒是实现了,就是执行过程中,DBGrid中闪烁几下,然后再出结果,好难看,效果好差;
我查询的做法是:依次求和每一个表,将结果集输出到DBGrid表中,然后从DBGrid中获取值再保存到一个Int变量中,
最后将九个变量的值相加。
我想请问,如何解决闪烁?? 或者 是我的方法错了,是不是可以将查询的结果集 隐式获取到变量中????
...全文
1530 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2016-08-04
  • 打赏
  • 举报
回复
在窗体的构造函数里: this->DoubleBuffered = true; DBGrid1->DoubleBuffered=true; 参考: http://blog.163.com/tab_98/blog/static/1192409720167475319874/
draculamx 2016-07-31
  • 打赏
  • 举报
回复
这种数据求和的问题,从原则上讲,是不应该通过界面来完成的,应该所有数据运算,求和,都在数据库中完成,不要和界面搅合在一起。。
draculamx 2016-07-31
  • 打赏
  • 举报
回复
在你的数据库中,建立一个临时表,每次计算的结果,存放到临时表中(每次用临时表之前将它清空),然后用DBGRID一次性的读出临时表的内容就好啦。。。。
return_sir 2016-07-30
  • 打赏
  • 举报
回复
我定义一个变量 int save; 然后通过SQL语句将结果集成获取到DBGird表中,最后再从DBGird表中读取值保存到前面的save变量中, 这样读一个表还像没有闪烁,但是读几个表时就有这种情况发生,我觉得是不是我操作的方法用问题啊??
FASM_FASM 2016-07-28
  • 打赏
  • 举报
回复
ADOQuery2->DisableControls();

......           //数据库操作
......
......

ADOQuery2->EnableControls();

......           //界面操作
......
ooolinux 2016-07-28
  • 打赏
  • 举报
回复
我不懂电脑 2016-07-27
  • 打赏
  • 举报
回复
在Form的Show事件里加上this->DoubleBuffered = true;
return_sir 2016-07-27
  • 打赏
  • 举报
回复
我的代码是这样的(片段):

    int a,b;
    sqlCmd="SELECT sum(zj) FROM room_1;";
    ADOQuery2->SQL->Clear();  // 必须先Clear再Add最后Open,顺序不能改
    ADOQuery2->SQL->Add(sqlCmd);
    ADOQuery2->Open();       //只能查
    //ADOQuery2->EnableControls();
    a=DBGrid1->Columns->Grid->Fields[0]->Value;
    //a=DBGrid1->`FieldByName("total_title")->AsString;

    //ADOQuery2->DisableControls();
    sqlCmd="SELECT sum(zj) FROM room_2;";
    ADOQuery2->SQL->Clear();
    ADOQuery2->SQL->Add(sqlCmd);
    ADOQuery2->Open();       //只能查
    //ADOQuery2->EnableControls();
    b=DBGrid1->Columns->Grid->Fields[0]->Value;
    total=a+b;
    ShowMessage( "\t房租统计信息\n\n"
                 "\t1楼:    "+IntToStr(a)+"元\t\t\n"+
                 "\t2楼:    "+IntToStr(b)+"元\n"+
                 "\t合计:   "+IntToStr(total)+"元\n" );
是不是我的操作不正确??
return_sir 2016-07-27
  • 打赏
  • 举报
回复
@songhtao 我刚才加入了这条代码,还是不行啊,这DBGrid中用SQL语句的查询可以在别的地方获取吗?
C++Builder精彩编程实例集锦的源代码(4,5,6部分): 第四部分 图像处理 实例124 如何浏览图像 实例125 如何滚动浏览大图像 实例126 如何拖动图像 实例127 如何动态显示图像 实例128 如何维护多个图像 实例129 如何绘制图形 实例130 如何以不规则方式裁剪图像 实例131 如何以任意角度旋转显示图像 实例132 如何在桌面上显示图像 实例133 如何拷贝当前屏幕 实例134 如何打印图像文件 实例135 如何制作马赛克图像 实例136 如何实现图像中心扩散效果 实例137 如何实现图像百叶窗效果 实例138 如何实现图像底片化效果 实例139 如何实现图像翻页效果 实例140 如何实现图像镜像效果 实例141 如何柔化处理图像 实例142 如何锐化处理图像 实例143 如何雾化处理图像 实例144 如何将彩色图像转换成黑白图像 实例145 如何将BMP图像文件转换为JPG图像文件 实例146 如何全屏播放AVI文件 实例147 如何制作媒体播放器 第五部分 系统编程 实例148 如何获取键盘类型 实例149 如何获取声卡配置 实例150 如何获取处理器信息 实例151 如何获取系统元素颜色 实例152 如何获取显示元素信息 实例153 如何获取系统支持的显示模式 实例154 如何动态设置系统的显示模式 实例155 如何获取内存空间信息 实例156 如何获取磁盘类型 实例157 如何获取磁盘卷信息 实例158 如何获取磁盘空间信息 实例159 如何在我的电脑中隐藏磁盘 实例160 如何隐藏系统任务栏 实例161 如何隐藏桌面图标 实例162 如何在桌面上创建快捷方式 实例163 如何获取和设置桌面墙纸 实例164 如何设置桌面墙纸显示方式 实例165 如何进行系统桌面切换 实例166 如何禁止系统屏幕保护程序 实例167 如何在程序中启动系统屏幕保护程序 实例168 如何在开始右键菜单中添加菜单项 实例169 如何清空系统回收站 实例170 如何删除文件到回收站 实例171 如何启动控制面板程序 实例172 如何在系统控制面板中添加项目 实例173 如何为计算机增加启动日志 实例174 如何获取操作系统的启动模式 实例175 如何变暗屏幕颜色 实例176 如何关闭计算机 实例177 如何禁止关闭Windows操作系统 实例178 如何修改IE浏览器的背景 实例179 如何在程序中控制IE窗口 实例180 如何使用默认浏览器打开指定网页 实例181 如何获取当前正在运行的程序 实例182 如何监视系统剪贴板变化 实例183 如何获取系统剪贴板的数据格式 实例184 如何设置系统日期 实例185 如何获取操作系统的产品序列号和产品名称 实例186 如何获取和设置鼠标双击响应速度 实例187 如何弹出和关闭光驱 实例188 如何检测网络连接 实例189 如何创建拨号网络 第六部分 数据库应用 实例190 如何创建不写代码的数据库程序 实例191 如何添加TDBNavigator组件的按钮功能 实例192 如何对数据库记录求和 实例193 如何对数据库记录求平均值 实例194 如何使用Locate方法查询数据库记录 实例195 如何查询固定范围的数据库记录 实例196 如何提高数据库应用程序查询效果 实例197 如何使用数据集的书签 实例198 如何浏览数据库中的图像 实例199 如何在删除数据库记录前给予提示 实例200 如何取得数据集的当前状态 实例201 如何创建主从关系的数据集 实例202 如何在一个数据集中浏览另一个数据集的数据 实例203 如何在数据库更新过程中增加事务操作 实例204 如何在程序中实现查找字段 实例205 如何在程序中实现自定义字段 实例206 如何使用字段拖放功能 实例207 如何为程序添加报表打印功能 实例208 如何使用向导创建打印报表 实例209 如何设置一对多数据库表 实例210 如何设置一对多报表打印功能 实例211 如何根据一对多数据库表绘制图形 实例212 如何根据数据库表显示饼图 实例213 如何根据数据库表绘制条形图 实例214 如何动态绘制数据库图表 实例215 如何设置多重群组的打印报表 实例216 如何编写商业决策分析程序 实例217 如何导出对象库中的商业决策分析程序 实例218 如何打印含有图像字段的数据库表 实例219 如何实现数据库表整表复制 实例220 如何实现数据库记录的批量删除 实例221 如何实现数据库记录的批量修改 实例222 如何使用SQL Builder工具创建SQL语句 实例223 如何在程序运行指定SQL语句 实例224 如何在程序中创建并使用数据库 实例225 如何在程序中控制与数据库的连接 实例226 如何在程序中创建Access数据库ODBC数据源 实例227 如何在程序运行创建数据库BDE别名 实例228 如何在安装程序中设置BDE引擎 实例229 如何消除MS-SQL Server数据库连接的登录框 实例230 如何连接MS-SQL Server数据库 实例231 如何连接MS-Access数据库 实例232 如何连接dBase数据库 实例233 如何使用ODBC连接Excel表 实例234 如何使用ADO操作Access数据库 实例235 如何定制DBGrid组件的列表头 实例236 如何统计DBGrid组件多选单元格 实例237 如何设置DBGrid组件指定单元格的颜色值 实例238 如何在DBGrid组件单元格中增加下拉菜单 实例239 如何定制StringGrid组件指定单元格的颜色 实例240 如何获取StringGrid组件鼠标指定单元格的值 实例241 如何使用StringGrid组件显示数据库查询结果 实例242 如何禁止数据控制组件与数据集组件同步刷新 实例243 如何把数据库表转换成文本文件 实例244 如何把数据库中的数据写入Word文档 实例245 如何设置数据库字段的输入显示格式 实例246 如何管理数据库程序的错误信息 实例247 如何获取数据库BDE别名 实例248 如何获取数据库BDE别名参数信息 实例249 如何获取数据库的工作目录 实例250 如何获取数据库驱动程序名称

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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