关于VB连接操作数据库的问题

PublicCnnAsNewADODB.ConnectionPublicRsAsNewADODB.Recordset如何使用CNN和RS来控制DataGrid控件啊?能给... Public Cnn As New ADODB.Connection
Public Rs As New ADODB.Recordset
如何使用CNN和RS来控制
DataGrid控件啊?
能给个具体点的例子吗?
展开
 我来答
leckylee
2006-02-11 · TA获得超过217个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:250万
展开全部
你连的是什么数据库?楼上的给你的是连access的代码,我给你连SQL的代码吧,用datagrid一句Set Grid.DataSource = Rs 就可以绑定了,比较简单,但是不是很灵活,我推荐MSHflexgrid,所以我给你的是连接SQL用MSHflexgrid的代码:
Option Explicit
'by lecky
'VB连接SQL
'2005-11-25

'''''''''''''''''''''''''''''''''''''''''''''以下为模块代码''''''''''''''''''''''''''''''''
Public Cnn As ADODB.Connection
Public ServerName As String
'服务器名
Public DBname As String
'数据库名
Public UserName As String
'用户名
Public PassWord As String
'密码

Public Function IniDB() As Boolean
'初始化连接函数
On Error GoTo MyErr
IniDB = False
Set Cnn = New ADODB.Connection
With Cnn
.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & UserName & ";PWD=" & PassWord & ";Initial Catalog=" & DBname & ";Data Source=" & ServerName
'连接字符串
.CommandTimeout = 10
'连接等待时间
.CursorLocation = adUseClient
'游标类型
.Open
End With
IniDB = True
Exit Function
MyErr:
MyErr
End Function

Public Sub MyErr()
MsgBox "错误号:" & Err.Number & vbCrLf & "错误源:" & Err.Source & vbCrLf & "错误描述:" & Err.Description, vbCritical, "对不起,出现错误!"
Err.Clear
End Sub

Public Sub DBclose()
'断开连接
If Cnn.State = adStateOpen Then Cnn.Close
End Sub

Public Sub FillData(rs As ADODB.Recordset, Grid As MSHFlexGrid)
'导入数据过程
On Error GoTo myerr2
Dim i As Integer
Dim j As Integer
With Grid
.Clear
.rows = 2
.Cols = rs.Fields.Count
For i = 0 To .Cols - 1
.textmatrix(0, i) = rs.Fields(i).Name
'将矩阵的第一行设置为表字段名
Next i
If rs.RecordCount > 0 Then
.rows = rs.RecordCount + 1
i = 1
rs.MoveFirst
Do Until rs.EOF
'直到rs至结果集末尾退出循环
For j = 0 To rs.Fields.Count - 1
.textmatrix(i, j) = rs.Fields(j).Value & ""
'将表中的记录导入grid
Next j
rs.MoveNext
i = i + 1
Loop
End If
.ColSel = .Cols - 1
'设置起始列
End With
Exit Sub
myerr2:
MyErr
End Sub
'''''''''''''''''''''''''''''''''''''以下为窗体代码''''''''''''''''''''''''''''''''''''''''
Option Explicit

Private Sub CmdCnn_Click()
'连接数据库按钮
ServerName = "."
DBname = "lecky"
UserName = "lecky"
If IniDB() = False Then End
MsgBox "连接成功"
CmdFill.Enabled = True
End Sub

Private Sub CmdFill_Click()
'导入数据按钮
On Error GoTo Myerr1
Dim rs As New ADODB.Recordset
rs.Open "select * from bank", Cnn, adOpenStatic, adLockOptimistic
MsgBox "数据已导入"
FillData rs, MsgLecky
'msglecky--MSHFlexgrid控件名
Exit Sub
Myerr1:
MyErr
End Sub
Private Sub CmdExit_Click()
End
End Sub
百度网友6b0209ccd
2006-02-10 · TA获得超过1394个赞
知道小有建树答主
回答量:743
采纳率:0%
帮助的人:0
展开全部
把recordset返回的纪录集给了datagrid就可以了啊~!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式