adoquery1.sql.add('update 操作员表 set 操作员='''+edit1.text+''',密码='''+edit2.text+''',权限='''+edit3.text+''' where  操作员='''+dbgrid1.SelectedField.Text +''''); 
请问各位大侠我的语句哪错了?同样的语句只要把dbgrid1.SelectedField.Text换成一个变量就能通过。我想应该是dbgrid1.SelectedField.Text这个语句的错误,请问该怎么改?(我的目的是选择表格中的一条记录,选保存按扭保存数据。) 谢谢!!

解决方案 »

  1.   

    你选择一条记录并不一定SelectedField就是‘操作员’,改成:
    dbgrid1.FieldByName('操作员').AsString
      

  2.   

    to sysu
    改成这个也不行,换在dbgrid1.Fields(0).AsString也不行,郁闷。
    to pidi不是引号的问题,因为改成一个变量就不会弹出错误提示。
      

  3.   

    把dbgrid1.Fields[0].AsString显示出来看看是什么
      

  4.   

    如果你的DBGRID是和ADOQUERY相连的,那么将
    DBGRID1.SELECTEFIELD.TEXT
    改成
    ADOQUERY1.FIELDBYNAME('操作员').ASSTRING
      

  5.   

    to aquadp:
    我刚刚试过了,还是不行,郁闷~
      

  6.   

    我知道了,点击另一按扭时,dbgrid1.Fields[0].AsString的值根本就传不过来,所以产生错误。不仅仅是dbgrid1.Fields[0].AsString传不过来,像dbgrid1.selectfield.text等都传不过来,请问大家该如何取dbgrid中的一个单元格的值?
      

  7.   

    >> 点击另一按扭时,像dbgrid1.selectfield.text等都传不过来
    是什么意思啊?为什么传不过来?
      

  8.   

    不知道~
    我是先选择表格中的一行,再修改edit等控件中的内容,最后点保存按扭保存信息。
    可是表格中的数据竟然传不过来。
      

  9.   

    选择表格时,用edit1.text:=dbgird1.fields[0].asstring;能对表格进行赋值。
    但是再选择按扭,就会弹出错误框。
      

  10.   

    adoquery1.sql.add('update 操作员表 set 操作员=' + ''''+edit1.text + '''' + ',密码=' + '''' + edit2.text + '''' + ',权限=' + '''' + edit3.text + '''' + ' where  操作员=' + '''' + dbgrid1.SelectedField.Text + '''');
      

  11.   

    可能是你在编辑文本框时,焦点(FOCUS)移位了,所以你用selected取不过来吧
    版主的引号是绝对没有问题的了.