If sqlRS.RecordCount = 0 Then
  
       Dim Insert_Str As String
          Insert_Str = "insert into td_raintemp values(" & yyyy & mm & dd & hh & "," & Rain & "," & Temp & "," & quhao & ")"
         sql_conn.Execute Insert_Str
end if以上是一小段VB的代码,原理是在sql_rs中查询数据,如果数据没有,即=0的时候,就新建一条数据,用insert语句插入进去,有数据的话就update就去
  问题就是,我现在查出的数据=0,所以执行insert,但程序运行完毕后,sql里还是没有写入数据,请问是什么问题?之后,我把代码改名为:
If sqlRS.RecordCount = 0 Then           sqlRS.Fields("observtimes") = yyyy & mm & dd & hh
           sqlRS.Fields("td_rain") = Rain
           sqlRS.Fields("td_temp") = Temp
           sqlRS.Fields("quhao") = quhao
           sqlRS.Update
end if运行结束后还是不能写入sql,请问什么问题呢?

解决方案 »

  1.   

    原来的应当有
    Private Sub Command1_Click()
        Dim cn As New ADODB.Connection
        
        cn.BeginTrans
        strsql = ""
        cn.Execute strsql
        cn.CommitTrans
    End Sub
      

  2.   

    If sqlRS.RecordCount = 0 Then
      
          Dim Insert_Str As String
          
          sql_conn.BeginTrans
              Insert_Str = "insert into td_raintemp values(" & yyyy & mm & dd & hh & "," & Rain & "," & Temp & "," & quhao & ")"
            sql_conn.Execute Insert_Str
         sql_conn.CommitTrans
    End If
      

  3.   

    改的    If sqlRS.RecordCount = 0 Then          sqlRS.AddNew
              
              sqlRS.Fields("observtimes") = yyyy & mm & dd & hh
              sqlRS.Fields("td_rain") = Rain
              sqlRS.Fields("td_temp") = Temp
              sqlRS.Fields("quhao") = quhao
              sqlRS.Update
        End If
      

  4.   

    你跟中以下,走了代码没
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/
      

  5.   

    应该是数据类型问题
    (" & yyyy & mm & dd & hh & "," & Rain & "," & Temp & "," & quhao & ")
    难道这全是数字类型的吗?至少我看应该不全是数字吧,是字符要加单引号的,例如 '" & rain &"'
      

  6.   

    第一、跟踪了,代码全过
    第二、YYYY MM  DD  HH  Rain  Temp  都是string变量,都已经赋值了的
    第三,数据库联接正常,用的是sa帐户。密码正确。
    现在不管是insert还是addnew都不行
      

  7.   

    如果全都是STRING那你用INSERT就得全部打单引号
    Insert_Str = "insert into td_raintemp (observtimes,td_rain,td_temp,quhao)values('" & yyyy & mm & dd & hh & "','" & Rain & "','" & Temp & "','" & quhao & "')" 用ADDNEW就得打双引号,若是变量或函数就不用,例如:sqlRS.Fields("observtimes") = yyyy & mm & dd & hh '假如是函数
    sqlRS.Fields("td_rain") = "Rain" 
    sqlRS.Fields("td_temp") = Temp '假如是变量
      

  8.   

    回楼上  都是变量,
    用的是sqlRS.Fields("td_temp") = Temp 的写法
    但还是不能写入sql
      

  9.   

    设置断点得到Insert_Str 的内容,把Insert_Str 的内容复制到查询分析器里就知道什么原因了
      

  10.   

    先确认sqlRS.RecordCount 是不返回了0
    没有数据并不一定返回0,要看你的游标类型
      

  11.   

    回楼上,insert语句放在查询分析器里面能写入,但程序不能写入
      

  12.   

    sqlrs.recordcount返回的时-1,我在程序里面设置的是如果recordcount<=0 就执行insert