vb中用ado对象Recordset来绑定到DataGrid的常见问题分析

vb 用ADODB.recordset对象绑定DATAGrid控件 这个问题难为我了大半天想来惭愧……经过查资料,和反复试验了多次不过问题总算解决了……把要点同大家分享一下 代码是write在模块中的Option Explicit===========================================全局变量Global Conn As ADODB.Connection    adodb对象连接Global Rs As ADODB.Records 阅读详情
先看正常代码:
Dim con As New ADODB.Connection '定义数据库的连接存放数据和代码
Dim cmd As New ADODB.Command
Dim Gs As New ADODB.Recordset
Dim strSQL As String
con.ConnectionString 
= StrConn
strSQL 
= "select * from 顾客信息表"
'con.CursorLocation = adUseClient'无就不能绑定数据了?
con.CursorLocation = adUseClient '还不能是adUseServer
con.Open
Set Gs = con.Execute(strSQL)
'Gs.Open strSQL, con, 3, 3
Set DataGrid1.DataSource = Gs
DataGrid1.Refresh
'Call FillDataToMSFlex(Gs, MSFlexGrid1)
Set Gs = Nothing
Set con = Nothing
 
现在做如下修改:
Dim con As New ADODB.Connection '定义数据库的连接存放数据和代码
Dim cmd As New ADODB.Command
Dim Gs As New ADODB.Recordset
Dim strSQL As String
con.ConnectionString 
= StrConn
strSQL 
= "select * from 顾客信息表"
'con.CursorLocation = adUseClient'无就不能绑定数据了?
con.CursorLocation = adUseClient '还不能是adUseServer
con.Open
Set Gs = con.Execute(strSQL)
'Gs.Open strSQL, con, 3, 3
Set DataGrid1.DataSource = Gs
DataGrid1.Refresh
'Call FillDataToMSFlex(Gs, MSFlexGrid1)
'
Set Gs = Nothing
'
Set con = Nothing
Gs.Close
con.Close
会出现datagrid里没有数据.
那我再想Set gs=nothing 和gs.close到底有什么区别,我看了下百度Nothing,如下就是其解释:


Nothing 关键字用于取消某对象变量与实际对象的关联。使用 Set 语句将对象变量赋值为 Nothing。例如:

Set MyObject = Nothing
多个对象变量可以引用同一个实际对象。当 Nothing 赋值给某对象变量后,此变量就不再引用任何实际对象。当多个对象变量引用同一个对象时,只有在所有对象变量都设置为 Nothing (在设置为 Nothing 的最后一个对象变量超出范围后,显式或隐式地使用 Set 命令)后,与变量所引用的对象相关联的内存和系统资源才被释放。



再如果不写con.CursorLocation = adUseClient,也没有数据,并且会报错,它会提示行集合不能做为标签.

故我感想:
datagrid太不理想了,因为它的数据是需要绑定的,而不是想MSFlexGrid那样是从数据集里读取的.
Public Sub FillDataToMSFlex(rs As ADODB.Recordset, Mygrid As MSFlexGrid) '将数据填充到MSFLEXGRID控件中去
 Dim i, j As Integer
 
Dim RowCount As Integer
 Mygrid.AllowUserResizing 
= flexResizeBoth
 
Do Until rs.EOF()
                Mygrid.Cols 
= rs.Fields.Count + 1
                Mygrid.TextMatrix(
0, 0) = "序号"
                
For i = 1 To rs.Fields.Count
                    Mygrid.TextMatrix(
0, i) = rs.Fields(i - 1).Name
                
Next i
                Mygrid.Rows 
= RowCount + 1
                Mygrid.TextMatrix(RowCount, 
0) = RowCount
                
For j = 0 To rs.Fields.Count - 1
                    
If IsNull(rs.Fields(j)) Then
                        Mygrid.TextMatrix(RowCount, j 
+ 1) = "NULL"
                    
Else
                        Mygrid.TextMatrix(RowCount, j 
+ 1) = rs.Fields(j)
                    
End If
                
Next j
                
'Mygrid.TextMatrix(RowCount, j + 1) = Trim(RecordValue(j))
                RowCount = RowCount + 1
                rs.MoveNext
        
Loop
End Sub


MsFlexGrid它没有datagrid那样娇贵,这不行,那样也不行,只要有个数据集即可.
VB数据库连接实战:从ADO到DataGrid的完整开发手册 做了十几年VB开发,最让人头疼的不是界面怎么画,而是数据怎么存、怎么取、怎么绑。很多人一听到数据库连接就犯怵,觉得要装驱动、写SQL、调连接字符串,光这些就够劝退一波人了。但实际上,VB6自带的ADO组件已经把这条路铺得很平了。今天这篇文章,我把自己在项目里摸爬滚打总结出来的数据库连接实战经验,从连接、查询、增删改到数据绑定,一次性给你讲透。不说废话,全是能直接拿去用的东西。 阅读详情

相关推荐

VB使用ADO和DataGrid进行数据库操作的全面指南

数据库操作是现代Web开发中不可或缺的一部分。本章将为你介绍如何使用ADO (ActiveX Data Objects) 和 DataGrid控件实现高效且直观的数据库操作。ADO 是一个易于使用的数据访问技术,它通过编程语言提供的对象来操作数据库,而 DataGrid 控件则是一个强大的UI元素,用于在ASP.NET应用程序中展示和管理数据。我们将从基础入手,探讨ADO与DataGrid结合使用时,如何通过简单直观的编程实现对数据库的基本CRUD(创建、读取、更新和删除)操作。

weixin_31641077的博客 899

DataGridView控件——绑定数据

机房重构时用到了这个控件,这个控件与第一次机房中用到的DataView控件相比,这个控件是其的升级版本。 下表借鉴了一下师父的总结。 下表描述了DataGridView提供而DataGrid未提供的几个主要功能。 DataGridView功能 描述 多种列类型 与DataGrid相比,DataGridView 提供了许多其他的内置

千千 3409

VB 绑定数据到DataGrid显示的数据库实例.rar

这是一个在VB中使用 数据库绑定控件DataGrid的实例,演示了如何将从数据库中读取出的数据显示到DataGrid控件中。本例子中包括了很多ADO 操作数据库方面的基本操作,是新手学习VB环境下的ado操作的好范例,比如添加、更新、删除、检索、排序、查找、筛选等操作,将数据从数据库读取后,绑定显示在datagrid中,可调整datagrid的宽度,使其每一项都可以看完整。在你退出之前,你必须保存记录或者取消保存。

dataGridVie控件绑定DataTable数据

dataGridVie控件绑定DataTable数据 实现功能: dataGridVie控件绑定DataTable数据,点击按钮更新DataTable数据,dataGridVie控件的数据

qq_27474555的博客 2065

用于多种无人机协作的群体智能算法:综合综述

随着无人机技术的快速高水平发展,将多架无人机作为自主控制的编队应用于复杂情况是一个新兴领域的代表之一。在实现自主控制的挑战中,碰撞避免、任务分配、路径规划和编队重构是关键功能。本文对各种经典的无人机群智能算法进行了系统的总结和分析。

erjia_的博客 1万+

阻容降压 vs 开关电源:5V小功率供电方案成本与安全深度对比

本文深度对比了阻容降压电路与开关电源在5V小功率供电方案中的核心差异。重点剖析了二者在成本、体积、效率、温升及安全隔离等方面的优劣,并结合智能温控器、LED驱动等典型应用场景,为硬件工程师提供了清晰的选型决策框架,帮助在成本与安全之间做出最佳权衡。

weixin_29310631的博客 702

Adodb.Command 平时很少注意到的一个参数

我们在 ASP 中调用 SQL Server 的存储过程时,如果使用 Adodb.Command 对象,通常使用如下的代码:dim cmd, rsset cmd = Server.CreateObject("ADODB.Command")cmd.ActiveConnection = conncmd.CommandType = adCmdStoredProccmd.CommandText = "Te

木野狐@优快云 Blog 4272

Windows Server 2012评估版过期自动关机问题:两种高效解决方案详解

本文针对Windows Server 2012评估版过期导致的自动关机问题,提供了两种高效解决方案。一是通过slmgr.vbs命令重置授权,临时延长评估期;二是使用DISM工具将评估版转换为正式版,一劳永逸。文章详细解析了两种方法的操作步骤、注意事项及适用场景,帮助用户快速恢复服务器稳定运行。

pytorchlight8的博客 1195

vb mysql 实例_VB6.0数据库开发五个实例——罗列的总结

实例一: 系统登录对话框设计分析:数据库管理系统登录对话框两种基本方法:数据库中建立数据表用于保存系统用户登录信息;支持安全验证的数据库管理系统,可将系统用户定义为数据库用户。技术要领:1、Enter 、Cancel2、ADO Connection对象3、ADO RecordSet对象(相关属性:Active connection、Eof、Field;方法:open;Fields集合)4、自己定义...

weixin_34887221的博客 1327

linux arm64 Debian12移植操作手册

2023年6月10号Debian官方出了debian12 arm64版本的。如果需要完全适配这个系统的话,需要linux6.10版本。应客户的需求,需要在Debian11升级为Debian12版本。

qq_45147279的博客 2169

ADO在vb.net中的使用(与datagrid结合)

在VB6在,ADO是大家在数据库编程中用得较多的。而在新的vb.net中,虽然也可以用它来查询数据库,但在与新的datagrid的绑定中,不能像以前那样使用:“datagrid1.datasoure=rs”,而是需要一定的转化。因为新的datagrid.datasoure所对应的是datatable或dataset,而并不是原来的Recordset。所以,在使用中,要把Recordset转换成da

jatwu的专栏 2842

XGBoost原生接口和Sklearn接口参数详解

XGBoost原生接口和Sklearn接口参数详解

算法工程师 2654

VB2008.NET DataGrid相关总结2

1.VB2008.NET中DataGrid控件的使用   http://www.002pc.com/master/College/Programming/aspnet/13233.html     在VB6 在,ADO是大家在数据库编程中用得较多的。而在新的vb.net中,虽然也可以用它来查询数据库,但在与新的datagrid的绑定中,不能像以前那样使用:“datagrid1.datas

杨文的专栏(南京Java讲师) 765

48、基于头部电信号和触觉的人机交互技术研究

本文探讨了基于头部电信号控制决策和触觉感知的人机交互技术。通过EEG信号采集与ANN模型(TDNN/PRNN)分析,实现对用户意图的识别;同时利用触觉传感接口识别操作员有意接触,提升人机协作安全性。研究涵盖系统设计、数据处理流程、实验结果及技术拓展方向,并展望了两种技术在工业、医疗与智能家居等领域的融合应用前景。

i1j2k的博客 102

【学习系列】SAP RAP 7:行为定义-Draft

本文介绍了RAP框架中的草稿表(Draft)功能及其应用。草稿表允许用户临时保存数据,在激活前不影响业务逻辑,支持保存继续、暂存和设备切换功能。草稿分为独占草稿(仅限同一用户编辑)和协作草稿(允许多用户协同编辑)。启用草稿需在行为定义和投影中包含标准action,并创建包含TotalETag等管理字段的草稿表。TotalETag确保草稿转换时活动数据未被修改,而ETagmaster则防止并发修改。文章通过OData调用示例详细说明了ETag验证过程,强调草稿功能由RAP框架自动处理,开发者只需关注定义和配置

DeveloperMrMeng的博客 443

不用ado控件,让datagrid显示数据

用vb写程序的时候,经常需要让DataGrid控件显示数据库的内容,一般都是通过把DataGrid和ADO控件绑定实现的,这样比较麻烦。后来我就想写代码实现这个功能,代码如下:Public Function GetMDBRecordset(SQL As String, DatabasePath As String, Optional DatabasePassword As String) As R

1299

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

vb html table,VB6.0 如何是用 datatable

搜索热词这里介绍新的datagrid.datasoure所对应的是VB6.0 datatable或dataset,而并不是原来的Recordset。所以,在使用中,要把Recordset转换成VB6.0 datatable或dataset。VB6.0还是比较常用的,于是我研究了一下VB6.0 datatable,在这里拿出来和大家分享一下,希望对大家有用。在VB6.0在,ADO是大家在数据库编程中...

weixin_39940344的博客 219

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VB & 数据库交互(二)——经典五实例总结

上一篇讲到了VB与数据库交互的必备知识,这张从经典实例的方向出发,讲述一些经典的代码。        1,在系统登录的例子中:        a,建立数据库连接,和执行查询命令: '建立数据库连接 set objcn=new Connection'实例化Connection对象 objcn.ConnectionString = "Provider=Microsoft.jet.OL

学会改变自己——才能突破 6769

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

DataGrid控件的使用(VB)

使用 DataGrid 控件     DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示 Recordset 对象的记录和字段。可以使用 DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid 控件可以在设计时快速进行配置,只需少量代码或无需代码。当在设计时设置了DataGrid 控件的 DataSource 属性后,就会

wwwcs59的专栏 2201

vb 窗体html表格,VB6.0 如何是用 datatable

这里介绍新的datagrid.datasoure所对应的是VB6.0datatable或dataset,而并不是原来的Recordset。所以,在使用中,要把Recordset转换成VB6.0datatable或dataset。VB6.0还是比较常用的,于是我研究了一下VB6.0 datatable,在这里拿出来和大家分享一下,希望对大家有用。在VB6.0在,ADO是大家在数据库编程中用得较多的。...

weixin_31523181的博客 402

VB6.0 如何是用 datatable

这里介绍新的datagrid.datasoure所对应的是VB6.0 datatable或dataset,而并不是原来的Recordset。所以,在使用中,要把Recordset转换成VB6.0 datatable或dataset。 VB6.0还是比较常用的,于是我研究了一下VB6.0 datatable,在这里拿出来和大家分享一下,希望对大家有用。 在VB6.0在,ADO是大家在

lbuskeep的专栏 8683

关于如何使用ADO连接数据库

    我是一名VB初学者,曾经为这个问题很苦恼,现在终于写了出来,和我一样的初学者一起进步吧!   我使用ADO连接数据库,通过绑定datagrid控件来显示数据库中符合条件的内容。Option ExplicitPrivate Sub Command1_Click() Dim cn As New ADODB.Connection        数据库连接变量 Dim Cmd A

muwenyi的专栏 1686

VB6连接Access数据库并进行读写操作

在VB6开发中,有时需要处理一些数据或存储用户信息,用TXT文件十分不便,读写麻烦。而使用数据库则很有必要。 在VB6编程中,可以使用多种方法连接数据库,而ADODB连接非常方便,兼容性也十分良好,所以用ADODB连接数据库成为了不二之选。

dd_jzt的博客 929
上一篇: 阻止魔兽争霸3-冰封王座运行
下一篇: 使用ado 数据集对象浏览表中记录不支持数据访问上一条
linux_wolfelite
博客等级 码龄20年 3粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值