请问我想在dbgrid的一个项中输入数字,当离开这个项的时候,让它里面的数字变成'L'+数字 应该怎么写  我写的colexit事件 如果一直往后写信息时总是重复的叠加L 我只想加一个L 应该怎么办啊
我是这么写的~adoquery1.Close;
adoquery1.SQL.Clear;
s:='L'+trim(dbgrid1.fields[0].asstring);
t:='select * from KBXX where 看板='''+s+'''';
adoquery1.SQL.Add(t);
adoquery1.open;
adotable1.Edit; if  adoquery1.RecordCount>0 then
   begin
   showmessage('此看板已存在!检查后重新输入!');
    dbgrid1.Fields[0].FocusControl;
    dbgrid1.Fields[0].Clear;   end
else if adoquery1.RecordCount =0 then
begin
dbgrid1.fields[0].asstring := s ;
end;end;

解决方案 »

  1.   

    如果你非要这么来实现的话……
    adoquery1.Close; 
    adoquery1.SQL.Clear;
    s1:= trim(dbgrid1.fields[0].asstring);
    if s1[1] <> 'L' then
      s:= 'L '+s1
    else
      s:= s1;

    t:= 'select * from KBXX where 看板= ' ' '+s+ ' ' ' '; 
    adoquery1.SQL.Add(t); 
    adoquery1.open; 
    adotable1.Edit;  if  adoquery1.RecordCount >0 then 
       begin 
       showmessage( '此看板已存在!检查后重新输入! '); 
        dbgrid1.Fields[0].FocusControl; 
        dbgrid1.Fields[0].Clear;    end 
    else if adoquery1.RecordCount =0 then 
    begin 
    dbgrid1.fields[0].asstring := s ; 
    end; end;
      

  2.   

    NND,竟然不支持嵌套标记!s1:= trim(dbgrid1.fields[0].asstring);
    if s1[1] <> 'L' then
      s:= 'L '+s1
    else
      s:= s1;

      

  3.   

    if s1[1]  < >  'L ' then 
    这句为什么这么写啊?我不太明白呢~~