我的数据库里面除了系统自动添加的主键外有4个字段,分别为BZM,ZH,YFLH,ZWM,可是我用查询语句
 sql.add('update w set BZM=:BZM,ZH=:ZH,YFLH=:YFLH,ZWM=:ZWM '
       +'where BZM='''+edit2.text+'''');
时候只能更新后面3个字段,BZM无法更新,是为什么啊?代码如下:
 if radiobutton6.Checked then
  begin
    try
      with DataModule2.ADOQuery1 do
      begin
       sql.Clear ;
       sql.add('update w set BZM=:BZM,ZH=:ZH,YFLH=:YFLH,ZWM=:ZWM '
       +'where BZM='''+edit2.text+'''');
       parameters.ParamByName('BZM').Value :=edit2.Text ;
       parameters.ParamByName('ZH').Value :=edit3.Text ;
       parameters.ParamByName('YFLH').Value :=edit4.Text ;
       parameters.ParamByName('ZWM').Value :=edit5.Text ;
       execsql;
       sql.clear;
     sql.add('select * from w ');
     open;
     listview1.Items.Clear ;
     while not eof do
     begin
      with listview1.Items.Add do
       begin
         caption:=fieldbyname('BZM').asstring;
         subitems.Add(fieldbyname('ZH').asstring);
         subitems.Add(fieldbyname('YFLH').asstring);
         subitems.Add(fieldbyname('ZWM').asstring);
       end;
       next;
     end;
     close;

解决方案 »

  1.   

    更新的字段为edit2.Text ,查询字段也为edit2.Text 
    二者不同就行了
      

  2.   

    你的程序里没有要更新BZM啊?
    1.
    sql.add('update w set BZM=:BZM,ZH=:ZH,YFLH=:YFLH,ZWM=:ZWM '
           +'where BZM='''+edit2.text+'''');
    更新BZM=edit2.text的记录
    2.
    parameters.ParamByName('BZM').Value :=edit2.Text ;
    将bzm更新为edit2.text
    所以一样啊
      

  3.   

    sql.add('update w set BZM=:BZM,ZH=:ZH,YFLH=:YFLH,ZWM=:ZWM '
           +'where BZM='''+edit2.text+'''');//问题所在
           parameters.ParamByName('BZM').Value :=edit2.Text ; //问题所在
      

  4.   

    原来是这样,那我是要换一个字段了?可我就4个字段,4个edit.text啊,可以用自动编码的那个Access字段吗?
      

  5.   

    sql.add('update w set BZM=:BZM,ZH=:ZH,YFLH=:YFLH,ZWM=:ZWM '
     这上面是要更新的
           +'where BZM='''+edit2.text+'''');这是条件
    老大别晕啊
      

  6.   

    呵呵,逃课小王子,我还没晕,在琢磨,你说的我知道了.我是在想如何才可以全部更新啊.我一定要在ListView里面选中一个,然后全部更新,包括选中的那个,这样不可以吗?还是有别的方法?
      

  7.   

    fdx2304 () 你描述一下需求,我们一起帮你想个方法不就有了么? 我怎么觉得简单 的事 复杂了
      

  8.   

    就是我查询数据库,结果显示在Listview里面啊,要求可以修改数据库里面的内容,我想鼠标在Listview里选一个,在右边的TXT文本框里面填入新数据,然后点击更新.这个很常见的程序吧?