我想向数据库中保存信息,但前提是如果保存的信息中如果其中的一个字段的内容同数据库中原有的这个字段的内容相同,就不再保存这条信息了,我现在保存的信息的语句是下边这条。比如是记录时间这个字段的信息内容已经在数据库中存在了,那么当前这条就不再保存,请问需要怎么更改呢?
        sqlinsert = "insert into [客车列尾运行数据] ([主机编号],[命令名称],[记录时间]) values ('" + Text2.Text + "','" + Text4.Text + "','" + Text3.Text + "')"
        rs_suminsert.CursorLocation = adUseClient
        rs_suminsert.Open sqlinsert, conn, adOpenKeyset, adLockPessimistic
        rs_suminsert.CursorLocation = adUseClient

解决方案 »

  1.   

    if conn.execute("select count(*) from 客车列尾运行数据 where 记录时间='" & Text3.text & "'")(0)=0 then
       conn.execute sqlinsert
    end if
      

  2.   

    if conn.execute("select count(*) from 客车列尾运行数据 where 记录时间='" & Text3.text & "'")(0)=0 then 
      conn.execute sqlinsert 
    end if
    加上这句还是不行,我记录时间一样的话还是会保存同样的数据
      

  3.   

    conn.execute("select count(*) from 客车列尾运行数据 where 记录时间='" & Text3.text & "'")(0)返回的是与记录时间(text3中的值)相同的表中的记录的行数,如果没有返回值就要检查text3中的内容了。
    如果记录时间的内容是yyyy-mm-dd HH:MM:SS的格式,text3中的内容要符合。
    可以在查询分析器中运行下语句先
      

  4.   

    我text3中的内容是文本格式的。你说的“记录时间(text3中的值)相同的表中的记录的行数”中的行数是什么意思啊?难道不是我数据库中记录时间这个字段中的内容吗?
      

  5.   

    楼上你可能没理解我的情况,我这个是下载数据后记录,由于是分两次下载,所以有的数据是一样的,所以我避免同一条数据记录两条,所以在第二次下载记录的时候我要判断记录时间这个字段中的内容是否和第二次下载记录的内容有相同的,有相同就不记录当条数据,如果不相同就记录。我现在想知道用SQl语句怎么判断呢?
      

  6.   

    1、楼主是SQL SERVER吗
    如果是的话,你就不要判断了,直接用SQL语句来判断if not exists (select top 1 1 from tablename where fieldnae=value)
    insert into tablename (fieldlist) values (valuelist)if not exists 判断查询是否有返回值,如果没有就执行if 下一条语句2、你下载下来的意思不明白,是指已经读取到RecordSet中了吗,
    如果是这样的话,判断某个字段是否存在指定值,
    可以使用RecordSet.Filter属性进行过滤,然后查看RecordSet.RecordCount是否大于0
    来判断是否存在指定的记录
    Filter、RecordCount属性的单词记的不太准确,反正分别是以F和R开头的两个属性3、楼主问题描述的不太清楚,
    4、涉及到数据库一定要说是什么数据库、啥版本