首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB连接数据库有关问题

2012-03-09 
VB连接数据库问题我用VB编写一个程序从一个表中读几个数据进入MxFlesGrid.原表一共有十一项数据,我只想读

VB连接数据库问题
我用VB编写一个程序从一个表中读几个数据进入MxFlesGrid.
原表一共有十一项数据,我只想读其中的十项,结果现在十一项都读出来了,使得位置不够,我不知道哪里出问题了.

Option   Explicit

Dim   rs   As   New   ADODB.Recordset
Dim   strSql   As   String
Const   row_num   =   10
Const   col_num   =   10
Private   Sub   Form_Activate()
    refreshGird
End   Sub

Private   Sub   refreshGird()
    Dim   i   As   Integer

    strSql   =   "select   编号,CPU,内存,硬盘,主板,显卡,网卡,电源,光驱,显示器   from   计算机 "
    rs.Open   strSql,   conn,   adOpenForwardOnly,   adLockReadOnly
   
    If   rs.EOF   Then
        MsgBox   "目前没有计算机资料! ",   vbOKOnly   +   vbExclamation,   "警告 "
        rs.Close
       
     
        Unload   Me
        Exit   Sub
      End   If
     
      jsjShow.Rows   =   row_num
      jsjShow.Cols   =   col_num
         
      jsjShow.Row   =   0
      jsjShow.Col   =   0
      jsjShow.Text   =   "编号 "
      jsjShow.Col   =   1
      jsjShow.Text   =   "CPU "
      jsjShow.Col   =   2
      jsjShow.Text   =   "内存 "
      jsjShow.Col   =   3
      jsjShow.Text   =   "硬盘 "
      jsjShow.Col   =   4
      jsjShow.Text   =   "主板 "
      jsjShow.Col   =   5
      jsjShow.Text   =   "显卡 "
      jsjShow.Col   =   6
      jsjShow.Text   =   "网卡 "
      jsjShow.Col   =   7
      jsjShow.Text   =   "电源 "
      jsjShow.Col   =   8
      jsjShow.Text   =   "光驱 "
      jsjShow.Col   =   9
      jsjShow.Text   =   "显示器 "
     
 
      jsjShow.ColWidth(0)   =   1000
      jsjShow.ColWidth(1)   =   1000
      jsjShow.ColWidth(2)   =   1000
      jsjShow.ColWidth(3)   =   1000
      jsjShow.ColWidth(4)   =   1000
      jsjShow.ColWidth(5)   =   1000
      jsjShow.ColWidth(6)   =   1000
      jsjShow.ColWidth(7)   =   1000
      jsjShow.ColWidth(8)   =   1000
      jsjShow.ColWidth(9)   =   1000
     
      For   i   =   0   To   9
          jsjShow.ColAlignment(i)   =   0
      Next   i
     
      jsjShow.FillStyle   =   flexFillRepeat


      jsjShow.Col   =   0
      jsjShow.Row   =   0
      jsjShow.RowSel   =   1
      jsjShow.ColSel   =   jsjShow.Cols   -   1
      jsjShow.CellAlignment   =   4
     
      jsjShow.Rows   =   1
     
      Do   While   Not   rs.EOF
        jsjShow.Rows   =   jsjShow.Rows   +   1
        jsjShow.TextMatrix(jsjShow.Rows   -   1,   0)   =   rs.Fields(0).Value
        For   i   =   2   To   rs.Fields.Count
            jsjShow.TextMatrix(jsjShow.Rows   -   1,   i)   =   rs.Fields(i   -   1).Value
        Next   i
       
        rs.MoveNext
      Loop
      rs.Close
     
      jsjShow.SelectionMode   =   flexSelectionByRow
       
End   Sub


数据库计算机表有编号,登记时间,CPU,内存,硬盘,主板,显卡,网卡,电源,光驱,显示器共十一项.

现在这个程序编完后它读的是编号,然后是一列读空的,然后继续CPU,内存,硬盘,主板,显卡,网卡,电源,光驱,显示器.

我不知道哪里出问题了.

[解决办法]
给大家介绍个技术群

大家一起学习,一起提高

24964327
[解决办法]
For i = 2 To rs.Fields.Count-1
jsjShow.TextMatrix(jsjShow.Rows - 1, i) = rs.Fields(i - 1).Value
Next i

[解决办法]
For i = 1 To rs.Fields.Count
jsjShow.TextMatrix(jsjShow.Rows - 1, i) = rs.Fields(i - 1).Value
Next i


[解决办法]
Private Sub refreshGird()
strSql = "select 编号,CPU,内存,硬盘,主板,显卡,网卡,电源,光驱,显示器 from 计算机 "
rs.Open strSql, conn, adOpenForwardOnly, adLockReadOnly
set jsjshow.datasource=rs
rs.close
set rs=nothing
end sub

热点排行