先查询到一条数据,用adodc1来连接datagrid显示这条数据
sql = "select * from dzdb where 车号='" & Trim(Text1.Text) & "' and bzw=0"
Adodc1.RecordSource = sql
Adodc1.Refresh
Adodc1.CommandType = adCmdText
Set DataGrid1.DataSource = Adodc1
DataGrid1.ReBind
DataGrid1.Refresh
对一条数据修改,用adodc修改
             Adodc1.Recordset.Fields("类别").Value =lb1
           Adodc1.Recordset.Fields("bzw").Value = 1
          Adodc1.Recordset.Update
          Adodc1.RecordSource = ""
修改之后,然后用adodc2来显示datagrid
          Dim sql1 As String
          sql1 = "select * from dzdb where 车号='" & Trim(Text1.Text) & "' and bzw=0"
          Adodc2.CommandType = adCmdText
          Adodc2.RecordSource = sql1
          Adodc2.Refresh
          Set DataGrid1.DataSource = Adodc2
          DataGrid1.ReBind
          DataGrid1.Refresh
查这个车号的bzw=0的,就是想让刚才修改过的那条数据不显示,如果还有别的就显示别的bzw=0的,但是运行后,上面这组数据像是不运行似的,datagrid闪了一下,但数据还是以前那样的,bzw也没有变1,其他"类别"等的内容也没进去,还是空的。
我做了如下动作:
1、如果我把sql1那里点成断点,当运行到那里时停一下,哎,这就好使了,datagrid里没数据了。
2、我把sql1=“select……and bzw=1”,改成1时,datagrid竟没数据了。别人说是不是这时bzw还没有被改成1啊,但这时,我又做了下一步测试。
3、我又把sql1那里做成断点,运行到那里时一停(bzw=1),数据显示出来了,bzw确实已经是1了,里面其他内容也都有了。求高手指点,这是什么意思啊,代码没改,怎么运行成这个样子啊?

解决方案 »

  1.   

    sql1=“select……and bzw=1” 这句在哪?
      

  2.   

    你是不是写错了? 
    sql1 = "select * from dzdb where 车号='" & Trim(Text1.Text) & "' and bzw=0" 
    这句应该 写成
     sql1 = "select * from dzdb where 车号='" & Trim(Text1.Text) & "' and bzw=1" 
      

  3.   

    不是啊,我是先修改这条数据的啊,在这里:
    Adodc1.Recordset.Fields("bzw").Value = 1 
    Adodc1.Recordset.Update 已经把这条数据的bzw字段修改为1了,而我现在想实现的是让datagrid不显示这条数据,所以要查询bzw=0啊,对吧,而且断点运行时bzw=0就是把数据刷没了,就是我要的那个样子,而为什么不设置断点运行时,它就不能刷没呢?
      

  4.   

    你是否指定了游标类型为 AdOpenDynamic ,是否指定锁定类型为 AdLockBatchOptimistic
    只有这样才能立即更新到数据库并且立即查看,否则看到的是旧数据
      

  5.   

    还有更新要使用 Adodc1.Recordset.UpdateBatch
      

  6.   

    我做出来了,一个不知道是不是问题的问题,我在点这个按钮之前写了句“chehao=trim(text1.text)”,然后在这个“ sql1 = "select * from dzdb where 车号='" & Trim(Text1.Text) & "' and bzw=0" ”,时里面的“车号='" & Trim(Text1.Text) & "'”改为“车号='chehao'”,这样就好使了。具体为什么我也说不上来。
    谢谢你帮我!
      

  7.   

    不对啊,不是,刚才这个chehao错了,应该是where 车号='" & ch & " ' and bzw=0",这样运行,问题跟之前的一样,看来问题不是这里。