CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

怎么可以得到在DBGrid中选中的多行数据!

楼主ruffian1052(云游诗人)2004-04-03 09:59:42 在 Delphi / VCL组件开发及应用 提问

ShowMessage(DBGrid1.DataSource.DataSet.FieldByName('field_01').AsString);  
  or  
      ShowMessage(DBGrid1.DataSource.DataSet.Fields[0].AsString);  
   
  上面可以得到当前选中的数据!  
  怎么可以得到多选的那?? 问题点数:0、回复次数:9Top

1 楼hmzgz81(哩翱)回复于 2004-04-03 10:02:27 得分 0

用TbookmarkTop

2 楼ruffian1052(云游诗人)回复于 2004-04-03 10:08:51 得分 0

with   DBGrid.Datasource.Dataset   do  
  begin  
      if   not   Active   then   Abort;  
      DisableControls;  
      try  
          First;  
          while   not   EOF   do    
          begin  
              DBGrid.SelectedRows.CurrentRowSelected:=True;  
              Next;  
          end;  
          finally  
              EnableControls;  
          end;  
      end;Top

3 楼ruffian1052(云游诗人)回复于 2004-04-03 10:09:50 得分 0

呵呵~~谢谢了!!BOOKMARK好笼统的说法!详细点Top

4 楼ruffian1052(云游诗人)回复于 2004-04-03 10:18:09 得分 0

with     DBGrid.Datasource.Dataset     do      
  begin      
        if     not     Active     then     Abort;      
        DisableControls;      
        try      
                First;      
                while     not     EOF     do          
                begin      
                        if   DBGrid.SelectedRows.CurrentRowSelected   then  
                              begin  
                                  \\do   you   want  
                              end;  
                        Next;      
                end;      
                finally      
                        EnableControls;      
                end;      
        end;Top

5 楼menggirl(我是锄禾,你是当午)回复于 2004-04-03 10:34:39 得分 0

var  
      temp:bookmark;  
    begin  
      for   i:=0   to   dbgrid.selecterows.count-1   do   begin  
          temp:=dbgrid.selectrows.items[i];  
          table1.gotomark(temp);  
          for   j:=0   to   table.fieldcount-1   do    
                保存当前记录  
          table1.freebookmark(temp);  
    end;  
  即可处理Top

6 楼xudaifei(飞)回复于 2004-04-11 22:36:52 得分 0

TO   menggirl(看天上浮云,胜似闲庭信步)   :  
   
        我也遇到同样的问题,我也是了你的方法,但是  
        BookMark   是   DataSet的一个proprety,   用Temp   :   bookMark时就会报错  
  Top

7 楼samcrm(镜花水月)回复于 2004-04-11 22:56:00 得分 0

var  
      temp:TBookmarkstr;Top

8 楼THQ(我是菜鸟)回复于 2004-04-15 21:59:10 得分 0

up~  
  我也想知道……Top

9 楼lth1025(小精灵)回复于 2004-08-12 10:10:16 得分 0

DBGrid1.Options:=   DBGrid1.Options+[dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgRowSelect,dgConfirmDelete,dgCancelOnExit,dgMultiSelect];  
   
  先在DBGrid1的Options属性中将以上几项设为True.  
   
  然后再看下面这段代码:  
   
  procedure   TSBGZJHBMLDSPForm.tbPlspClick(Sender:   TObject);  
  var  
      maxcount,j:integer;  
  begin  
      if   RadioGroup2.ItemIndex=0   then  
      begin  
          if   not   Query1.IsEmpty   then  
          begin  
              if   DbgridEh1.SelectedRows.Count=0   then  
              begin  
                  showmessage('请选择要批审的记录!前头框边颜色为黑色为选中.');  
                  Exit;  
              end   else  
              begin  
                  if   MessageBox(Handle,'你确定批量审批这些记录吗?','询问',  
                  MB_ICONQUESTION+MB_YESNO)=mrYes   then  
                  begin  
                      maxcount:=DbGridEh1.SelectedRows.Count   -   1;  
                      for   j   :=   0   to   DbgridEh1.SelectedRows.Count   -   1   do  
                      begin  
                          maxcount:=DbgridEh1.SelectedRows.Count   -   1;  
                          with     DbGridEh1.DataSource.DataSet   do  
                          begin  
                              GotoBookmark(pointer(DBGridEh1.SelectedRows.Items[j]));  
                              if   Query1SPJG.Value='0'   then  
                              begin  
                                  Query1.Edit;  
                                  Query1SPSL1.Value:=Query1SL.Value;  
                                  Query1SPZJ1.Value:=Query1YSZJ.Value;  
                                  Query1SPJG.Value:='1';  
                                  //单项小于10万元的项目赋值下一级  
                                if   not   ((Query1SPSL1.AsFloat=0)   or   (Query1SPSL1.AsFloat=null))   then  
                                  begin  
                                      if   (Query1SPZJ1.AsFloat/Query1SPSL1.AsFloat<10)   then  
                                      begin  
                                          Query1SPSL2.Value:=Query1SPSL1.Value;  
                                          Query1SPZJ2.Value:=Query1SPZJ1.Value;  
                                      end;  
                                  end;  
                                  Query1.Post;  
                                  Query1.ApplyUpdates;  
                                  Query1.CommitUpdates;  
                              end;  
                          end;  
                      end;  
                      showmessage('数据批量审批完毕!');  
                      OpenQuery(Query1,Query1.SQL.Text);  
                      Query1AfterScroll(Query1);  
                  end;  
              end;  
          end;  
      end   else  
      begin  
          showmessage('请选择未批的数据审批!');  
          exit;  
      end;  
  end;  
  Top

相关问题

  • 急急急,关于DBGrid取选中行的数据。
  • 请问关于DbGrid 得取选中行的一个字段数据数据(多选),而DbGird不要乱滚动。
  • 在DBGrid中选中多行数据后,如何得到选中行中某一列的数据!有例子更好!
  • DBGrid选中行的问题
  • 怎样在dbgrid或者stringgrid中,给选中的几行行数据加以标识?
  • DBGridEh 锁定选中的一行数据
  • 菜鸟求教 怎么删除DBGrid里选中的数据!
  • 请教:数据窗口行选中后颜色改变问题!
  • 数据窗口中行被选中,颜色怎么设置?
  • DBGridEh怎么读取选中的行的数据?? up有分!

关键词

  • dbgrid
  • spsl
  • selectedrows
  • asfloat
  • dbgrideh
  • query
  • bookmark
  • datasource
  • begin
  • dataset

得分解答快速导航

  • 帖主:ruffian1052

相关链接

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

广告也精彩

反馈

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