问个简单问题散分

softrain 2002-05-28 02:27:56
想用datagrid控件显示我查询到的记录集.这个记录集是单行集,不可以直接赋给datagrid.
Dim con As New Connection
Dim rs As New Recordset
Dim adore As New ADODB.Recordset
Dim i As Long
Private Sub Form_Load()
con.CursorLocation = adUseServer
con.Open "provider =sqloledb;data source =z007;user id = sa;initial catalog =master"
Set rs = con.OpenSchema(adSchemaTables)
'rs是单行集,所以不能直接把把rs赋给datagrid
'有两种方法,但都有问题不能解决
End Sub
方法一:
Private Sub Command1_Click()
For i = 0 To rs.Fields.Count - 1
adore.Fields.Append rs.Fields(i).Name, rs.Fields(i).Type'问题在于,传递过来的字段属性在ADO不认识.比如数据库中的adVarWChar字段类型
Next
adore.Open
Do While Not rs.EOF
adore.AddNew
For i = 0 To rs.Fields.Count - 1
adore.Fields(i).Value = rs.Fields(i)
Next
rs.MoveNext
Loop
Set DataGrid1.DataSource = adore
End Sub
方法二:
Private Sub Command2_Click()
Dim c As Column
For i = 0 To rs.Fields.Count - 1
Set c = DataGrid1.Columns.Add(i)
c.Caption = rs.Fields(i).Name
Next
Do While Not rs.EOF
For i = 0 To rs.Fields.Count - 1
DataGrid1.Columns(i).Value = rs.Fields(i)'问题在于,datagrid没有新的行可以使用,也就是说datagrid没有可用于填充数据的行
Next
rs.MoveNext
Loop
End Sub
谁能解决问题,100分送上.up者也有分.说到做到.
...全文
34 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
wling 2002-05-29
  • 打赏
  • 举报
回复
up
ql_mf 2002-05-29
  • 打赏
  • 举报
回复
UP
softrain 2002-05-29
  • 打赏
  • 举报
回复
还有人来研究一下吗?
Kuye2002yx 2002-05-29
  • 打赏
  • 举报
回复
Up GZ
bestofbest 2002-05-29
  • 打赏
  • 举报
回复
up
孙小雄 2002-05-28
  • 打赏
  • 举报
回复
UP
zyb_8022 2002-05-28
  • 打赏
  • 举报
回复
哦!我用sql server试了一下,好像是不行,对不起
zyb_8022 2002-05-28
  • 打赏
  • 举报
回复
Dim cnn1 As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim rs As ADODB.Recordset
Dim strCnn As String
Set cnn1 = New ADODB.Connection
cnn1.Open "Driver={Microsoft Visual FoxPro Driver};" & _
"SourceType=DBF;" & _
"SourceDB=D:\考试站\import"
Set rstSchema = cnn1.OpenSchema(adSchemaColumns)
Set rs = rstSchema
Set DataGrid1.DataSource = rs
我试过的啊,只是我用的是dbf数据库,不信你随便找个dbf的文件用上面的试试
zyb_8022 2002-05-28
  • 打赏
  • 举报
回复
我现在有意研究的是openschema方法,如果有意交流的话请发mail
zhao1b@sina.com.cn
softrain 2002-05-28
  • 打赏
  • 举报
回复
zyb_8022(紫光) (:
可以吗?你先试了再说过.
zyb_8022 2002-05-28
  • 打赏
  • 举报
回复
Dim con As New Connection
Dim rs As New Recordset
Dim adore As New ADODB.Recordset
Dim i As Long
Private Sub Form_Load()
con.CursorLocation = adUseServer
con.Open "provider =sqloledb;data source =z007;user id = sa;initial catalog =master"
Set rs = con.OpenSchema(adSchemaTables)
set adore=rs
set datagrid1.datasource=adore
这样即可
daryl715 2002-05-28
  • 打赏
  • 举报
回复
guanzhu
Lotsof 2002-05-28
  • 打赏
  • 举报
回复
我也uo 了,既然这样
zyb_8022 2002-05-28
  • 打赏
  • 举报
回复
我也在研究这个问题,你是不是想看openschema打开后返回的都是什么值?有机会交流一下
jaidy 2002-05-28
  • 打赏
  • 举报
回复
up
softrain 2002-05-28
  • 打赏
  • 举报
回复

KUNLUNLANG(昆仑狼) :你说的方法不行的.必须给datagrid指定数据源,DataGrid1.AllowAddNew=True才有效.
「已注销」 2002-05-28
  • 打赏
  • 举报
回复
我说的是方法二,不好意思,没看到还有方法一
「已注销」 2002-05-28
  • 打赏
  • 举报
回复
把DataGrid1.AllowAddNew=True
这样就可以了
softrain 2002-05-28
  • 打赏
  • 举报
回复
lihonggen0(李洪根,用VB,标准答案来了)
我不是你说的哪个意思,显示表名很一个简单的查询语句.
我想研究datagrid.
孙小雄 2002-05-28
  • 打赏
  • 举报
回复
up 头
加载更多回复(2)

7,763

社区成员

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

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