VB链接sql数据库,这句话为什么出错?
vb吧
全部回复
仅看楼主
level 7
Sub OpenCNN()
Dim mLink As String
Dim DbUser As String, DbIP As String
DbUser = "login1" '用户名
DbPw = "1" '用户密码
DbPw = "zl" '数据库名
DbIP = "192.168.72.130" '服务器IP
mLink = "Provider=MSDataShape"
mLink = mLink & ";Data PROVIDER=MSDASQL”"
mLink = mLink & ";UID=”&DbUser"
mLink = mLink & ";PWD=”&DbPw"
mLink = mLink & ";DRIVER=SQL Server”"
mLink = mLink & ";DataBASE=”&DbName"
mLink = mLink & ";WSID=GQSOFT”"
mLink = mLink & ";SERVER=”&DbIP"
End Sub
-----------------------------------------------
Dim LV1 As ListItem
ListView1.ListItems.Clear
Call OpenCNN
SQL = "select * from 通讯录 "
RST.Open SQL, CNN, 1, 3
----------------------------------------------
程序编译时提示说:
RST.Open SQL, CNN, 1, 3
这段话出错了
2017年08月31日 15点08分 1
level 7
@Luosen56 罗老师,按您给的代码,我把链接sql的字串做了个函数OpenCNN。在主程序中进行了调用。如下:
Dim LV1 As ListItem
ListView1.ListItems.Clear
Call OpenCNN
SQL = "select * from 通讯录 "
RST.Open SQL, CNN, 1, 3
然后最后一句出错。提示说上下文关闭?
2017年08月31日 15点08分 2
看来你还不会在 VB 中使用数据库。
2017年09月01日 05点09分
mLink 只是一个连接字符串,你的程序中没有【连接数据库表】的命令。
2017年09月01日 05点09分
@Luosen56 Call OpenCNN SQL = "select * from 通讯录 " RST.Open SQL, CNN, 1, 3 这段不算是【连接数据库表】吗,罗老师?
2017年09月01日 05点09分
level 7
我的sql数据库也搭建好了
2017年08月31日 15点08分 3
level 9
OpenCNN()里并没有CNN.Open之类的语句,没连接数据库,所以后面的打开记录集就会出错
2017年08月31日 17点08分 4
怎么才能连接上数据库呢
2017年08月31日 17点08分
@菜园子heaven 告诉你了加上CNN.Open mLink这样的语句啊,罗老师只给了你一个连接字符串而已,并没有建立连接的语句
2017年09月01日 01点09分
@初音✨七奈 我按罗老师的修改了呀?建立连接了呀
2017年09月01日 02点09分
@菜园子heaven 回复到你前一个帖子里了
2017年09月01日 03点09分
level 15
人家的东西是按ip进入啊
2017年08月31日 20点08分 5
我也有ip啊?
2017年08月31日 23点08分
@菜园子heaven 还需要数据库的设置正确。
2017年08月31日 23点08分
@oshi001 数据库应该正确的
2017年09月01日 00点09分
吧务
level 13
' 在 VB 中使用数据库表的步骤——
' ⑴ 点击顶行菜单中的:工程 → 引用;勾选
'   Microsoft ActiveX Data Objects 6.1 Library
'   C:\Program Files\Comm Files\System\Ado\msado15.dll
' ⑵ 声明全局变量
Dim cn As Object ' 数据库连接对象变量
Dim rs As Object ' 数据表记录集变量
Dim mLink As String ' 数据库文件连接字符串
Dim mSQL As String ' 使用数据库表的SQL命令字符串
' ⑶ 构成连接字符串 mLink
Public Sub 连接数据()
Dim DbUser As String, DbPw As String
Dim DbName As String, DbIP As String
DbUser = "用户名"
DbPw = "用户密码"
DbName = "数据库名"
DbIP = "服务器IP"
mLink = "Provider = MSDataShape"
mLink = mLink & "; Data PROVIDER = MSDASQL"
mLink = mLink & "; UID = " & DbUser
mLink = mLink & "; PWD = " & DbPw
mLink = mLink & "; DRIVER = SQL Server"
mLink = mLink & "; DataBASE = " & DbName
mLink = mLink & "; WSID = GQSOFT"
mLink = mLink & "; SERVER = " & DbIP
End Sub
' ⑶ 连接并打开数据库表
Public Sub 打开数据()
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Call 连接数据
mSQL = "Select * From 表名"
cn.Open mLink
rs.Open mSQL, cn, 1, 3
' 将数据填表并刷新表格控件
Set MSHFlexGrid1.DataSource = rs
MSHFlexGrid1.Refresh
End Sub
' ⑷ 【Call 打开数据】即可看到表格中有数据了。
' :
2017年09月01日 05点09分 7
level 7
@Luosen56 罗老师,我的数据库测试成功了也按您说的修改了代码。可为什么还是找不到数据源?
2017年09月02日 00点09分 8
RST 是什么东东,这个变量声明成了【数据库表记录集对象变量】了吗?
2017年09月03日 03点09分
我给出的代码中,是将【rs】声明成了【数据库表记录集对象变量】。
2017年09月03日 03点09分
@Luosen56 是我搞错了
2017年09月03日 03点09分
level 7
@Luosen56 罗老师 ,说我没有注册类别,缺少什么?
2017年09月02日 01点09分 9
我说的第一步都没有做,怎么去做第二步、第三步……
2017年09月03日 02点09分
不要怕把代码展示出来,你这样遮遮掩掩、支离破碎的代码,没有人能帮助你。你最多将【IP地址、数据库名、打开数据库的用户密码】用 <汉字> 描述,其他代码必须全部展示出来。
2017年09月03日 03点09分
@Luosen56 谢谢罗老师。问题解决了。是我把计算机名当成数据库名了
2017年09月03日 03点09分
恭喜你在【成熟代码】的基础上,再次获得成功。
2017年09月03日 03点09分
吧务
level 13
' 在 VB 中使用数据库表的步骤——
' ⑴ 点击顶行菜单中的:工程 → 引用;勾选
'   Microsoft ActiveX Data Objects 6.1 Library
'   C:\Program Files\Comm Files\System\Ado\msado15.dll
  这一步,你做没有?
2017年09月03日 02点09分 10
level 7
受教了
2021年03月25日 14点03分 11
1