为啥总提示实时错误3709连接无法用于执行此操作。在此上下文中它可能已被关闭或无效.要怎么改?
我给个建议吧,用ADO控件,代码太复杂过时,都没法看
Adodc1.connectionstring="Driver={SQL Server};Server=服务器IP;Uid=用户名;Pwd=密码;DataBse=数据库名"
Adodc1.RecordSource="SELECT * FROM 表名 WHERE 条件"
Adodc1.Refrsh
这样就行了,你要处理处理下连接异常就加句
Adodc1.ConnectionTimeout = 时间值
你的错误不上那句打开数据源语句写错了,而是根本就没有去连接数据库,你直接去查询数据表了,你的数据库数据从哪里来?ADODB.ConnectionString呢,原代码是不是把conn定义为ADO连接字符串,你没给他定义怎么直接就用了起来,所以他在这句提示:
rs_add.Open sql, conn, adOpenKeyset, adLockPessimistic //实时错误'3709'
conn是什么?根本就没定义,非要这样,你就该先定义
Dim conn As ADODB.Connecton
再给他赋值
conn.ConnectionString="连接服务器数据库字符串"
再可以对他的数据源进行操作,这种方法相当过时,而且代码复杂,我的建议是你用
Microsoft ADO Data Control 2.0控件,直接给他的两个属性赋值就好了
Adodc1.connectionstring="Driver={SQL Server};Server=服务器IP;Uid=用户名;Pwd=密码;DataBse=数据库名"
Adodc1.RecordSource="SELECT * FROM 表名 WHERE 条件"
Adodc1.Refrsh
这就算是连接上了,要去登陆验证那就改这句
Adodc1.RecordSource="SELECT * FROM 表名 WHERE 用户名='"+控件名称+"' AND 密码='"+控件名称+"'"
用窗体上的控件去筛选,查询结果为空时就是ADO控件记录集为假,那就判断他:
IF Adodc1.RecordSet.EOF Then
。。。。
ELSE
登陆
。。。。
END if
是不是比上面的代码好理解多了
没有打开数据库
dbF = App.Path & "\db.mdb"
adocn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbF & " ;Persist Security Info=False;
Connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & App.Path & "C:\Users\Administrator\Desktop\111.accdb'"
'这个SQL语句不正确, App.Path 指的是程序根目录,后面怎么又是绝对路径?
Connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & App.Path & "\111.accdb;Jet OLEDB:Database Password=;"
'如果 111.accdb 数据库文件在程序根目录,使用上面语句
Connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Administrator\Desktop\111.accdb;Jet OLEDB:Database Password=;"
'如果 111.accdb 数据库文件不在程序根目录,使用上面语句
Conn.Open Connstr '这个语句是打开数据库连接的,应该没有问题。
如果有问题可以再回复。
ConnMdb() '连接数据库
这个函数 没看到你有调用。
错误提示说得很清楚,你还没有连接数据库
VB实时错误3709
解决3709错误原因是,你没有先写连接数据库代码,rs_login是摸不着北的,所以产生3709 conn.open "连接字串..."待留意的代码问题:Command1_Click(Index As Integer)是数组控件,每个Index的Command1控件都运行相同的过程?rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic建议adOpenKeyset改为...
【求助,急!】错误提示 实时错误'3709':连接无法用于执行此操作。在此...
看看你的链接字符串是否正确:.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=db_Client;Data Source=db_Client"
为啥总提示实时错误3709连接无法用于执行此操作。在此上下文中它可能已...
"'如果 111.accdb 数据库文件不在程序根目录,使用上面语句Conn.Open Connstr '这个语句是打开数据库连接的,应该没有问题。如果有问题可以再回复。
VB连接数据库 3709无法连接
1、删掉最后不要的.ActiveConnection = cnSIMS 2、删掉“Public rs1 As ADODB.Recordset '声明一个连接到所需表的记录集 Public rs2 As ADODB.Recordset”因为没有用到。3、在Form_Load事件里给conString赋值。4、conProvide= Microsoft.Jet.OLEDB.4.0 5、换成下列代码 连接数据库时:Set conn...
vb msyql 连接无法用于执行此操作,在此上下文中它可能已被关闭或无效...
& db_data & ";" & "UID=" & db_user & ";PWD=" & db_pass & ";" & "OPTION=3;stmt=SET NAMES GB2312"conn.open strCn 所以你再用这两句就相当于又重新关闭了连接,而你又没有重新打开,自然就有错误了。将这两句注释掉试一下吧,rs记录集对象也已经打开了,所以也要去掉。
VB+ACCESS 连接无法用于执行此操作。在上下文中它可能已被关闭或无效...
Jet.OLEDB.4.0;Data Source= " & App.Path & "\\data\\data.mdb;Jet OLEDB:Database Password=123456; "rs.Open "Select * from 商品"出错在这句上改成rs.Open "select * from 商品",cn,1,1未测试,如果要写入数据表,把语句后面的1,1改成3,3 '''修改文件操作权限 ...