Dim Cn As ADODB.Connection
Set Cn = New ADODB.Connection
Dim rs As ADODB.Recordset
Dim strcon As String
strcon = "Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=DB;Data Source=192.168.0.100"
        
Cn.ConnectionString = strcon
On Error Resume Next
Cn.Open
If Cn.State = adStateOpen Then
   Set rs = New ADODB.Recordset
   Dim sr As String
   sr = "select * from product" ' where id =4001"
   rs.Open sr, Cn
      MsgBox rs.RecordCount    
Cn.Close
End If
为什么每次提示的rs.recordcount都=-1阿???怎么解决

解决方案 »

  1.   

    先    
    Rs.CursorLocation = adUseClient
      

  2.   

    按照楼上说的recordcount有结果了,但在后面我加了:
    rs.Open sr, Cn, 1, 2
         
          With rs
             .Fields("0") = "图"
             .Fields("filename") = "4001" & str1 & ".png"
             .Fields("updatetime") = Now
             .Update
             .Close
          End With
    为什么不能更新了?
      

  3.   

    Rs.Open sr, Cn, adOpenKeyset, adLockBatchOptimistic
      

  4.   

    还是不行,我重新贴一下代码:
    Set rs = New ADODB.Recordset
       rs.CursorLocation = adUseClient
       Dim sr As String
       sr = "select title,filename,updatetime from product where id =4001"
       rs.Open sr, Cn, adOpenKeyset, adLockBatchOptimistic
          With rs
             .Fields("title") = "强度图"
             .Fields("filename") = "4001" & str1 & ".png"
             .Fields("updatetime") = Now
             .Update
             .Close
          End With
      

  5.   

    Set rs = New ADODB.Recordset
       rs.CursorLocation = adUseClient
       Dim sr As String
       sr = "select title,filename,updatetime from product where id =4001"
       rs.Open sr, Cn, 1,3
          With rs
             .Fields("title") = "强度图"
             .Fields("filename") = "4001" & str1 & ".png"
             .Fields("updatetime") = Now
             .Update
             .Close
          End With
    试试看