写代码时,发现一个这样的问题,自己感觉很的,但又下子找不到错在哪里?
代码如下:
  Dim rs As New ADODB.Recordset
    Dim strsql As String
    Dim str As String
 
    
    strsql = "insert into DataMachine  (BrushCardNo,FMinute,FHour,FYear,FMonth,FDay,FMachineCode,Flag)  
values('012345',30,12,2004,6,11,'01',1)"
    If rs.State = adStateOpen Then rs.Close
    rs.Open str, cnn, adOpenStatic, adLockReadOnly
    rs.close
    set rs=nothingSQL语句是完全正确的,我在SQL server中执行过,但在执行打开操作时,会出错了
其提示是:
“连接无法用于执行此操作,在上下文中可能已被关闭或无效"
 请问,这出了什么问题?在线等您。

解决方案 »

  1.   

    你是进行数据插入操作
    strsql = "insert into DataMachine  (BrushCardNo,FMinute,FHour,FYear,FMonth,FDay,FMachineCode,Flag)  
    values('012345',30,12,2004,6,11,'01',1)"cnn.execute strsql'这样直接执行sql语句就可以
      

  2.   


        str or strsql ?
      

  3.   

    楼主定义的str变量没有使用过,应该是strsql
    rs.Open strsql, cnn, adOpenStatic, adLockReadOnly
    另外,也可以这样:cnn.execute strsql
      

  4.   

    rs.Open strsql, cnn, adOpenStatic, adLockReadOnly你的变量传错了,是strsql不是str
      

  5.   

    cnn.open strConnectionstrsql = "insert into DataMachine  (BrushCardNo,FMinute,FHour,FYear,FMonth,FDay,FMachineCode,Flag)  
    values('012345',30,12,2004,6,11,'01',1)"cnn.execute strsql
      

  6.   

    cnn
    有没有
    dim cnn as new adodb.connection???呵呵
      

  7.   

    “连接无法用于执行此操作,在上下文中可能已被关闭或无效"
    rs.Open str, cnn, adOpenStatic, adLockReadOnly
    错误提示没有打开连接。cnn在那里定义的?是否在执行此段代码之前已经被关闭?
    adOpenStatic, adLockReadOnly
    这种情况下能执行插入操作吗?
    str
    你是把SQL语句传给了strsql变量,这里用的是str变量!
      

  8.   

    楼主定义的str变量没有使用过,应该是strsql
    rs.Open strsql, cnn, adOpenStatic, adLockReadOnly
    另外,也可以这样:cnn.execute strsql
      

  9.   

    可能是连接没打开
    加上cnn.open
      

  10.   

    cnn确保打开
    rs.close不需要,rs执行完自动关闭.