首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示来自SQL 6的数据时出错

显示来自SQL 6的数据时出错
EN

Stack Overflow用户
提问于 2016-12-24 05:23:16
回答 1查看 83关注 0票数 0

我试图在我的表中显示几个数据,我使用内部连接来显示数据。

下面是我的代码来显示这些数据(在SQLYog中工作)

代码语言:javascript
复制
SELECT mahasiswa.NPM, mahasiswa.NamaMhs, mahasiswa.Jurusan, 
    mahasiswa.grup,mahasiswa.ta, bayar_lab.persen, bayar_dpp.persen
FROM bayar_dpp INNER JOIN bayar_lab ON bayar_dpp.NPM = bayar_lab.NPM 
INNER JOIN mahasiswa ON bayar_lab.NPM = mahasiswa.NPM 
ORDER BY mahasiswa.NPM

下面是我在VB6上的代码,它将在VSFlexGrid上显示这些数据

注意:"TampilGrid“函数是执行我所做的查询

代码语言:javascript
复制
 Private Sub TampilGrid(ByVal SQLnya As String)
    Grid.Rows = 1

    Call AksesRS(SQLnya)
    While Not rs.EOF
        Grid.Rows = Grid.Rows + 1

        Grid.TextMatrix(Grid.Rows - 1, 0) = rs.Fields(0)
        Grid.TextMatrix(Grid.Rows - 1, 1) = rs.Fields(1)
        Grid.TextMatrix(Grid.Rows - 1, 2) = rs.Fields(2)
        Grid.TextMatrix(Grid.Rows - 1, 3) = rs.Fields(3)
        Grid.TextMatrix(Grid.Rows - 1, 4) = rs.Fields(4)

        lb_persendpp.Caption = Val(rs.Fields(5))
        lb_persenlab.Caption = Val(rs.Fields(6))
        rs.MoveNext
    Wend
End Sub

但是发生了一个错误。它显示了

“在集合中找不到与所请求的名称或序号相对应的项”,特别是在rs.Fields(3)中,但是在rs.Fields(2)没有错误之前,rs.Fields(0)是不存在的。

你能告诉我怎么回事吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-24 10:02:03

尝试使用最佳实践,

  1. 如果可能的话,可以使用字段名称而不是字段索引,即rs("empName")
  2. 避免循环中的Grid.Rows = Grid.Rows +1。
  3. 在分配给控件或变量之前检查db空值。

试试下面的代码。

代码语言:javascript
复制
Dim index as Integer
Grid.Rows = rs.RecordCount
index = 1
While Not rs.EOF
    If Not IsNull(rs.Fields(0)) Then Grid.TextMatrix(index, 0) = rs.Fields(0)
    If Not IsNull(rs.Fields(1)) Then Grid.TextMatrix(index, 1) = rs.Fields(1)
    If Not IsNull(rs.Fields(2)) Then Grid.TextMatrix(index, 2) = rs.Fields(2)
    If Not IsNull(rs.Fields(3)) Then Grid.TextMatrix(index, 3) = rs.Fields(3)
    If Not IsNull(rs.Fields(4)) Then Grid.TextMatrix(index, 4) = rs.Fields(4)

    If Not IsNull(rs.Fields(5)) Then lb_persendpp.Caption = Val(rs.Fields(5))
    If Not IsNull(rs.Fields(6)) Then lb_persenlab.Caption = Val(rs.Fields(6))
    index = index + 1
    rs.MoveNext
Wend
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41310571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档