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

再次送100分,关于DataGrid的问题

楼主qingyuan97(清源)2004-09-01 18:27:33 在 VB / 基础类 提问

模块里:  
   
  Option   Explicit  
  Private   conn   As   ADODB.Connection  
  Private   rs   As   ADODB.Recordset  
   
   
  窗体里:  
   
   
  Private   Sub   Form_Load()  
  Dim   apppath   As   String  
  Dim   dbfilename   As   String  
  Dim   ConnectString   As   String  
  Dim   i   As   Integer  
  Set   conn   =   New   ADODB.Connection  
  dbfilename   =   App.Path   +   "\item.mdb"  
  ConnectString   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source="   &   dbfilename   &   ";Persist   Security   Info=False;"  
  conn.Open   ConnectString  
  conn.CursorLocation   =   adUseClient  
   
  Set   rs   =   New   ADODB.Recordset  
  rs.Open   "select   地图,怪物名称,等级,怪物类型,不可交易,不可重复,物品名称,重量,类型,伤害,延迟,距离,防御,性别,种族,职业,属性   from   item   where   职业   like   '%药%'",   conn,   adOpenKeyset,   adLockOptimistic  
   
   
  If   rs.EOF   Then  
  Exit   Sub  
  End   If  
  Set   DataGrid1.DataSource   =   rs  
  End   Sub  
   
   
   
  这样运行一切正常~~  
   
   
  但是DataGrid1的部分列宽,我觉得不满意,而且我让他自动换行,  
   
  我就在DaraGrid1属性里调整了  
   
  “布局”的一些参数。然后再次运行,   DataGrid1就空了!什么都没有!再改回来也不行。必须删除窗体上的DataGrid1,重新拖一个新的才行~再改,又空了!我这24小时了!就卡在这里。  
   
  我的机器是Windows2000,XP下也这样,   VB都是企业版,安装了ServicePack6的!  
   
  DataGrid来自Windows\system32\MSDATGRD.OCX.  
   
  有没有什么解决方法啊!!  
   
  换别的Grid也行,但是一定要给我确实能用的代码。谢谢了~~~~  
   
   
   
  问题点数:100、回复次数:8Top

1 楼xiaohuasz()回复于 2004-09-01 19:17:18 得分 5

该句conn.CursorLocation   =   adUseClient应该在放在conn.Open   ConnectString连接之前,  
   
  Top

2 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2004-09-01 19:26:39 得分 80

我这边没有问题  
   
  不行就代码设置吧  
  DataGrid1.Columns("订单号").Width   =   1200  
   
  你可以使用MSHFlexGrid控件,直接记录集绑定Top

3 楼donno2000(不懂)回复于 2004-09-01 19:26:52 得分 0

datagrid   的每一个列都要设置哦、Top

4 楼pingyou(裸男.NET)回复于 2004-09-01 19:30:42 得分 0

 
  DataGrid1.Columns("订单号").Width   =   1200  
   
  就是用这种方法来设置DataGrid每一列的列宽,如果你在程序运时自己重新调整列宽,你可以在窗体关闭时加一些代码,将每列的列宽存入注册表或一个.inf文件中,下次再打开窗体就重新读取。Top

5 楼4103796(潇湘予)回复于 2004-09-01 19:33:30 得分 0

在程序运行中拖拽网格行至最佳宽度。你用代码将宽度自动保存到注册表里。再启动窗体时,你用代码自动读取每列宽度并赋值,我的数据库程序就是这样做的。很受欢迎。比程序里写死代码要强多了。Top

6 楼hhjjhjhj(大头)(http://office.9zp.com)回复于 2004-09-01 19:33:41 得分 10

........  
  Do   While   DataGrid1.Columns.Count   <   rs.Fields.Count  
  DataGrid1.Columns.Add   DataGrid1.Columns.Count  
  Loop  
  For   i   =   0   To   rs.Fields.Count   -   1  
  DataGrid1.Columns(i).DataField   =   rs.Fields(i).Name  
  DataGrid1.Columns(i).Caption   =   rs.Fields(i).Name  
  Next   i  
  Set   DataGrid1.DataSource   =   rsTop

7 楼jam021(jam)回复于 2004-09-01 19:33:48 得分 0

用代码设置宽度吧Top

8 楼scaoso(枫林)回复于 2004-09-01 22:19:25 得分 5

解决了吧??我来接分了哦.Top

相关问题

  • 再次送分!!
  • 再次送分
  • 再次送分
  • 再次送22分!!
  • 再次送分!!快!
  • datagrid???
  • DataGrid
  • DataGrid
  • datagrid
  • DataGrid

关键词

  • 代码
  • datagrid
  • 窗体
  • 列宽
  • stringdim
  • 宽度
  • connectstring
  • 程序
  • adodb
  • conn

得分解答快速导航

  • 帖主:qingyuan97
  • xiaohuasz
  • online
  • hhjjhjhj
  • scaoso

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

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