斯里兰卡插座标准:关于VB连接操作数据库的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/27 11:35:51
Public Cnn As New ADODB.Connection
Public Rs As New ADODB.Recordset
如何使用CNN和RS来控制
DataGrid控件啊?
能给个具体点的例子吗?

你连的是什么数据库?楼上的给你的是连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

把recordset返回的纪录集给了datagrid就可以了啊~!