新手学DataGrid,有两个小小的困惑

prominent 2006-02-13 01:30:27
我正在写一个小的程序。。
就是产品查询的。。。
我要实现的结果是,想在DataGrid中显示查询到的值。问题是:
1.怎样在窗体装载时,就在第一栏显示字段的名称和控制每个字段栏目的宽度呢?
2.可不可以不用ado绑定。有没有其它的办法呢?
可能问题太菜了。。
可我真的不知道呀。查了N久了。。还是没有搞定。。。
望高手指点下撒。谢了。。
...全文
316 32 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
bulletCoderHope 2006-02-15
  • 打赏
  • 举报
回复
dim conn as new adodb.connection
dim rs as new adodb.recordset
Private Sub find_Click()
If trim(pro_search.Text)= "" Then
MsgBox "请输入相应的查询条件!", vbCritical, "提示!"
pro_search.SetFocus
Exit Sub
Else
rs.cursorlocation=aduseclient
Call open_db
Select Case Trim(combo.Text)
Case "名称"
rs.Open "select pro_name as 名称,pro_biename as 别名,pro_tiaoxingma as 条形码,pro_fenzishi as 分子式,pro_character as 性质,pro_guige as 规格,pro_baozhuang as 包装,pro_usage as 用途,pro_makemethod as 制造方法,pro_costprice as 进价,pro_saleprice as 售价,pro_quantity as 数量,pro_supplier as 供应商,pro_jingyun as 是否禁运,pro_safe as 安全系数,pro_code as 产品编码,pro_sort_name as 产品类别 from pro_inf where pro_name like '%" & Trim(pro_search.Text) & "%'", conn, 0, 1
If rs.EOF And rs.BOF Then
MsgBox "没有找到相关的产品,请重新输入查询条件!", vbInformation, "提示!"
pro_search.SetFocus
pro_search.SelStart = 0
pro_search.SelLength = Len(Trim(pro_search.Text))
Else
Set DataGrid.DataSource = rs '还是这句报错呀
End If
Call close_rs
End Select
Call close_db
End If
End Sub
要设置cursorlocation
azheng270 2006-02-14
  • 打赏
  • 举报
回复

不用ADO的话
用 OleDbConnection + OleDbDataReader + OleDbCommand
也可以有一样的效果
prominent 2006-02-14
  • 打赏
  • 举报
回复
好的.真的麻烦大哥了...
Private Sub find_Click()
Call open_db '是查询的.我删了一些代码看着不吃力呀呵呵.
rs.CursorLocation = adUseClient
rs.Open "select pro_name as 名称,pro_biename as 别名 from pro_inf where pro_name='" & Trim(pro_search.Text) & "'", conn, 0, 1
Set DataGrid.DataSource = rs
Call close_rs
Call close_db
End Sub
也许我的表达有问题呀...!
就是看不到效果..
当然数据库中有记录的..不知道是什么问题.
faysky2 2006-02-14
  • 打赏
  • 举报
回复
使用DataGrid就是那样,需要设置客户端游标(rs.CursorLocation=adUseClient)才能显示数据

我在运行的时候.却看不到效果...????这句不大明白,你不是说加上rs.CursorLocation=adUseClient就好了吗,怎么又没有效果?

能不能看看你的代码?

prominent 2006-02-14
  • 打赏
  • 举报
回复
可以实现了...
加上rs.CursorLocation=adUseClient这一句就没有问题了..
我以前都没有用过呀...
也没有出错呀!
我想知道是什么原因呀...能说说吗?
还有就是:我在运行的时候.却看不到效果...
但可看见.datagrid控件:闪动了一下,就像是在刷新但就是看不到我查询的结果.
我用ADODC绑定时可以实现我所要的结果..
但为了移植方便,我想还是用set datagrid.datasource=rs
但为什么就没有反应了?要线等.!
dell9 2006-02-14
  • 打赏
  • 举报
回复
是,我改成这个就好了。 谢谢帮助
Set MSHFlexGrid1.DataSource = rs
faysky2 2006-02-14
  • 打赏
  • 举报
回复
to :prominent()
to :dell9(含中文字符)
是的,rs.close和cn.close数据都会消失,用MSHFlexGrid的话则不会
dell9 2006-02-14
  • 打赏
  • 举报
回复
单步执行,好像一运行最后一句cn.Close数据就消失了。


dell9 2006-02-14
  • 打赏
  • 举报
回复
先前是我把控件名弄错弄了。
但是现在运行完后,没有数据显示出来啊?是不是有什么datagrid控件的属性要设置啊?
dell9 2006-02-14
  • 打赏
  • 举报
回复
运行完后,没有数据显示出来啊?
faysky2 2006-02-14
  • 打赏
  • 举报
回复
to:prominent() 代码没问题,把窗体上的DataGrid删除掉,重新添加一个新的,命名为DataGrid

to:dell9(含中文字符) 提示说"object required" 是什么原因阿?
缺少对象,看看你的窗体上时候有 名称为DataGrid1的控件,名称一定要写对
dell9 2006-02-14
  • 打赏
  • 举报
回复
我也不行啊,老在Set DataGrid1.DataSource = rs 出错。 提示说"object required" 是什么原因阿? 我用的sql server
cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password= ;Initial Catalog=pubs;Data Source=HJT"
cn.Open
sSQL = "select * from authors"
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient '设置客户端游标
rs.Open sSQL, cn, 3, 2
Set DataGrid1.DataSource = rs '把记录集的记录显示到DataGrid1

cn.Close
faysky2 2006-02-13
  • 打赏
  • 举报
回复
Adodc是控件,Adodb指的就是ADO(工程"/"引用"/Microsoft ActiveX Data Objects 2.X Library)
,代码上面已经有了
prominent 2006-02-13
  • 打赏
  • 举报
回复
应该是后者呀。。。但是怎样实现呀。。。给个思路呀。。。谢了。。。
lsftest 2006-02-13
  • 打赏
  • 举报
回复
不用ado???难道还用回dao或rao???
楼主的意思是不用adodc吧????不用adodc就用adodb吧。。。。。。。
prominent 2006-02-13
  • 打赏
  • 举报
回复
真没有办法了呀...
帮帮忙呀...
prominent 2006-02-13
  • 打赏
  • 举报
回复
问题解决了....
谢楼上的几位大哥了.
我不用ADO,那怎样用程序实现查询所得的记录显示在网格中呢?
肯请各路高人指点一下呀,谢了...


faysky2 2006-02-13
  • 打赏
  • 举报
回复
把那个DataGrid删除掉,重新添加一个应该可以了
samson_www 2006-02-13
  • 打赏
  • 举报
回复
先把需要的字段在datagrid右键中检索进去
prominent 2006-02-13
  • 打赏
  • 举报
回复
看来不是这个问题呀...
数据库的基本操作我都会了,就是对一些控件不是太熟悉,,,
苦于公司急于要这个软件.
没办法...
硬撑着呀...!
现学现卖!

加载更多回复(12)
notepad--v3.4 windows Notepad--v3.4.0-plugin-Installer.exe 是win10下面的插件版安装包,会关联右键菜单等。 Notepad--v3.4.0-win10-portable.zip 是绿色免安装版本,解压即用,不会关联右键菜单注册表。 Ndd-quick-v3.3.0-win10-single-portable.zip 是单文件绿色免安装版,只包含皮肤和vc依赖库,不含插件、不含文件对比,主推轻量级、快速反应。适合只需要纯粹、轻快级,文本编辑器的用户。不定期发布。 MacOS 版本 Notepad--v3.4.0-mac_x64_12.3.dmg 是macos 12.x 及以后的版本。 Notepad--v3.4.0-mac_arm64_12.3.dmg 是macos 12.x 及以后 arm64 m1/m2芯片 的版本。第一次安装时,需要在设置偏好里面,放开苹果的安装限制,才能正常识别,请自行放开设置一下。 如果还是有问题,参考帖子:#I8JTJN:macOS Sonoma 14.1.1安装提示已损坏:macOS Sonoma 14.1.1安装提示已损坏 uos com.hmja.notepad_3.4.0.0_amd64.deb 是x64 cpu架构的uos系统对应的ndd版本。 其余系统版本后续会发布。 3.4 修改如下: 1 支持文件标签拖入拖出到新窗口的效果。 2 windows下修改快捷键放开。 3 按行号切分大文件。 4 大文件打开时,在文件夹查找所在目录,macos下可能会崩溃问题。 5 目录右键增加删除文件、文件夹功能。 6 补充深色主题下rust语法高亮; lisp 语法失效问题。 7 linux下信号打开文件,不拿锁,打开文件在消息队列中去做。

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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