如何用DataGrid控件显示数据库中某一个表的内容?

xiaoy 2001-01-24 11:14:00
打开一个数据库里面有一个表(Table)名为"Authours",现在我想用DataGrid控件把它里面的内容显示出来。我用如下代码,但总是出现错误,请各位高手帮忙看看错在哪里?谢谢!
dim db as Connection
dim rs as Recordset

db.Open "Provider=...."
rs.Open "SELECT * FROM Authours",db
'在运行下一句时出错:
Set DataGrid1.DataSource=rs

错误如下:
Err.Description="行集合不能作为标签 "
...全文
382 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程烂指 2001-02-11
  • 打赏
  • 举报
回复
这么累,用一个ADODC控件不就可以了!
wxhzqy 2001-02-11
  • 打赏
  • 举报
回复
把以上程序修改成如下即可:
Dim db As New Connection
Dim rs As New Recordset
Dim str As String
str = "Provider=microsoft.jet.oledb.3.51;data source=c:\vb6db\mdb\books.mdb"
db.Open str
rs.CursorLocation = adUseClient
Set rs.ActiveConnection = db
rs.Open "SELECT * FROM 产品", db
Set DataGrid1.DataSource = rs
wxhzqy 2001-02-11
  • 打赏
  • 举报
回复
dsfsdf
MarsChen 2001-02-07
  • 打赏
  • 举报
回复
非常关注,我的也是这个问题
Dim cnn As New Connection
Dim adoRecordset As New Recordset

'建立连接
……
'建立记录集
……
adoRecordset.Open
'将控件绑到记录集上
Set DataGrid.DataSource = adoRecordset '运行到此处出错,提示“行集合不能作为标签 ”

真是莫名其妙,到底怎么解决啊(不用ADODATA)
……
CPLiu 2001-02-07
  • 打赏
  • 举报
回复
又是一个不想用adodc的
难道使用简单的方法就很丢脸吗?!

Const dbpath = "数据库路径"
Private Sub Form_Load()
Dim rs As adodb.Recordset, cnn As adodb.connection
Dim cnnstring As String
Set cnn = New adodb.connection
Set rs = New adodb.Recordset
cnnstring = "provider=microsoft.jet.oledb.3.51;data source=" & dbpath
cnn.open cnnstring
rs.Source = "tablename"
rs.open , cnn, adOpenStatic, adLockReadOnly, adCmdTable
Set DataGrid1.DataSource = rs
End Sub
如果不是复杂应用,建议使用ADODC!!!!
xiaoy 2001-02-03
  • 打赏
  • 举报
回复
谢谢“对酒当歌”,这样确实能显示数据。但是我现在不想用ADO控件,我只是想用纯代码的方式打开数据库,对一个未知的Access(*.mdb)数据库,能够知道它有几个表,几个查询,当用户选择一个表或查询后能够显示这个表或查询的数据,可以告诉我您是怎么做的吗?
好象用ADO做这件事有点困难。
starwild 2001-02-01
  • 打赏
  • 举报
回复
recordset对象不能作为DataSource,能够做DataSource的只有Adodc控件或DataEnvironment。建议你天加一个Adodc控件,然后添加以下代码:

set rs=Adodc.Recordset
set DataGrid.Datasource=Adodc
DataGrid.refresh
这样,应该就能够显示数据了。
gdw 2001-01-31
  • 打赏
  • 举报
回复
直接在窗口中添加DATA控件和dbgrid控件后,设置data1控件的datename属性为选择的数据库和datasource属性为选择的数据表后,dbgrid1的属性选择DATE1即可,何必那么麻烦,或者直接在程序用代码打开数据库后,设置运行DATA属性代码也可。
bucher 2001-01-26
  • 打赏
  • 举报
回复
非也,估计是你的代码问题,把你的代码贴上来。你的rs是不是只向前型(adForwardOnly),DateGrid不能绑定到这种类型的rs上面。
xiaoy 2001-01-26
  • 打赏
  • 举报
回复
问题是到了
Set DataGrid1.DataSource = rst
这一句程序就提示出错,不肯往下执行了。
另处,我定义的不是ADODC.Connection,
而是直接定义为
dim db as Connection
如果我用ADODC,并且在设计时就打开数据库,然后将DataGrid1.DataSource设置为ADODC,不没有问题,可以显示数据。
xiaomuyaoyao 2001-01-26
  • 打赏
  • 举报
回复
Set DataGrid1.DataSource=rs 不可以这么附值的。要用adodb就不能用DataGrid1
adodc才能约束带有datasource属性的控件(好象是这样,我以前试过很多次的)。
CPLiu 2001-01-26
  • 打赏
  • 举报
回复
直接绑定字段即可
xiaomuyaoyao 2001-01-26
  • 打赏
  • 举报
回复
对了要用客户端临时表的!
加上rst.cursorlocation = aduseclient就搞定了
xiaomuyaoyao 2001-01-26
  • 打赏
  • 举报
回复
的确是这样!
可绑定后gatagrid里什么也没有!why?

cnn.Open "Provider..."
rst.Open "select * from 表", cnn, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = rst
DataGrid1.Refresh
LeeChengYu 2001-01-25
  • 打赏
  • 举报
回复
把DataGrid1控件删掉,再重新建一个
xiaoy 2001-01-25
  • 打赏
  • 举报
回复
我用过NEW关键字了。
数据库已经打开,rs.open操作也已经成功。
错误出现在不能用DataGrid显示表中的数据。
LeeChengYu 2001-01-25
  • 打赏
  • 举报
回复
检查声明段是否缺少NEW 关键字?如解决请通知我,谢谢!
xiaoy 2001-01-25
  • 打赏
  • 举报
回复
如何重建DataGrid1?
是用代码重建还是在工具栏里把它拖过去?
xiaoy 2001-01-24
  • 打赏
  • 举报
回复
问题是我要用DataGrid1来显示"Authours"中的内容啊!
如果将Set DataGrid1.DataSource=rs删除,应该怎么显示内容呢?
LeeChengYu 2001-01-24
  • 打赏
  • 举报
回复
在db.open.......后加一句
Set RS.ActiveConnection = db
加载更多回复(1)

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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