我要在listview里删除选中的一行(listview显示的是数据库的数据),数据库为sqlserver2000,现在我的代码如下:
procedure TMgrF.Button4Click(Sender: TObject);
var
  i : integer;
begin
  for i := ListView2.Items.Count -1 downto 0 do
   if ListView2.Items[i].Selected then
   try
     Query3.SQL.Clear;
     Query3.SQL.Add('delete from car where car_num='+ListView2.Items[i].Caption);
     Query3.ExecSQL;
     ListView2.Items.Delete(i);
   except
     MessageDlg('删除<'+ListView2.Items[i].Caption+'>出错',mtError,[mbok],0);
   end;
end;
然后执行的时候提示说出错,我的listview2的caption里是车牌号码,比如京A1234567
他就提示说'京A1234567'无效!
这个问题到底错在哪儿????

解决方案 »

  1.   

    Query3.SQL.Add('delete from car where car_num='+chr(39)+ListView2.Items[i].Caption+chr(39));
      

  2.   

    Query3.SQL.Add('delete from car where car_num='''+ListView2.Items[i].Caption+'''');
      

  3.   

    chr(39)???
    直接就是编译错误!chr(39)是什么意思啊?楼上的是不是显示错误了??
      

  4.   

    Query3.SQL.Add('delete from car where car_num='''+ListView2.Items[i].Caption + ''' ') ;
      

  5.   

    成功了,谢谢xxmmmx(踢踏)
    给分!
      

  6.   

    同意 xxmmmx(踢踏) ( 
    Query3.SQL.Add('delete from car where car_num='''+ListView2.Items[i].Caption+'''');
      

  7.   

    chr(39) 就是一个单引号
    不过你用xxmmmx的那句比较好