读书人

VB连接数据库有关问题

发布时间: 2012-03-09 16:54:56 作者: rapoo

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

读书人网 >VB

热点推荐