能不能用集合collection填充DATAGIRD ?(在线等~)

CS_D_N 2005-12-10 01:07:34
如题,如果可以的话,
请各位达人给段实例代码~~
...全文
220 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zanblo 2005-12-12
  • 打赏
  • 举报
回复
不用集合可以吗
zanblo 2005-12-12
  • 打赏
  • 举报
回复
本方案先简单地将 Recordset 保存到一个文件中,再将其保存到 Stream。然后将持久保留的流打开到另一个 Recordset 中。

Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim stm As ADODB.Stream

Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set stm = New ADODB.Stream

rs1.Open "SELECT * FROM Customers", "Provider=sqloledb;" & _
"Data Source=MyServer;Initial Catalog=Northwind;" & _
"Integrated Security=SSPI;""", adopenStatic, adLockReadOnly, adCmdText
rs1.Save "c:\myfolder\mysubfolder\myrs.xml", adPersistXML
rs1.Save stm, adPersistXML
rs2.Open stm
CS_D_N 2005-12-11
  • 打赏
  • 举报
回复
谢谢两位!

我的应用程序是用3层架构写的,所有对数据库的操作都是执行完存储过程就断开(我想这样安全性应该比较高)。
northwolves 2005-12-11
  • 打赏
  • 举报
回复
你的要求是比较奇怪,这样不可以么?

Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
...
cnn.Open "..."
cmd.Name = "yourCommandName"
cmd.ActiveConnection = cnn
...
'Your command name, any parameters, and an optional Recordset.
cnn.yourCommandName "parameter", rst
Set datagrid1.Darasource=rst
Datagrid1.Refresh
CS_D_N 2005-12-11
  • 打赏
  • 举报
回复
谢谢 northwolves(狼行天下)

我的意思是用rst接受command的执行结果,然后把再用集合(collection)得到rst纪录集,
这时候把连接断开,用collection填充在datagird控件上面,不知道能不能实现,我找怎么找不到datagird的add方法?
请大家帮忙想想办法~
CS_D_N 2005-12-11
  • 打赏
  • 举报
回复
UP!
lsftest 2005-12-11
  • 打赏
  • 举报
回复
我找怎么找不到datagird的add方法?
=====================
add是Collection的方法,datagrid是没有add方法的,它显示的数据都依靠与之绑定的记录集。。按照你的描述,得先用一个实在的记录集rs1得到command的执行结果,然后把rs1的记录内容赋值给collection,接着关闭rs1的连接,再新建一个空的记录集rs2(用上面 northwolves(狼行天下)兄的方法),把collection的值又添加到rs2(记录集的阿addnew方法),再把rs2绑定到datagrid,最后显示出来。。。。
多么奇怪的要求。。。。
northwolves 2005-12-10
  • 打赏
  • 举报
回复
???
是不是这个意思?

'引用ADO

Private Sub Form_Load()
Dim x As New Collection
Dim adoRecordset As New ADODB.Recordset
Dim i As Integer

For i = 0 To 59 'fill collection
x.Add String(i \ 5 + 1, Chr(i Mod 5 + 65))
Next


For i = 0 To 5 '为Recordset六个字段,即为 DataGrid 添加六列
adoRecordset.Fields.Append "n * " & i + 1, adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
Next i
adoRecordset.Open
For j = 0 To 9
adoRecordset.AddNew '加十条记录,即为 DataGrid 添加十空行
Next j
Set DataGrid1.DataSource = adoRecordset '绑定 DataGrid 的数据源
adoRecordset.MoveFirst

'fill datagrid
For i = 0 To 5
For j = 0 To 9
DataGrid1.Row = j
DataGrid1.Col = i
DataGrid1.Text = x(j * 5 + i + 1)
Next
Next
End Sub

7,763

社区成员

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

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