现在有这样的模块需要处理:如教务信息系统中,新生入学登记,但登记过程中,可能输入不对,或信息不全的情况,需要进行修改,DBGrid已经指向数据源,但怎么点修改就是调不出学生的原始信息,请问这样的问题要怎么解决呢?第一个模块是修改按钮事件,第二个是FormShow()来显示数据,
第一个
procedure Tfrmxsmx.BitBtn5Click(Sender: TObject);
begin
  if ADOxscxQuery1.RecordCount=0 then begin
    ShowMessage('没有未入库商品~~!');
    Exit;
  end;
  if xsAdd<>nil then
    xsAdd.ShowModal
  else begin
    xsAdd:=TxsAdd.Create(Application);
    xsAdd.ShowModal;
  end;
end;第二个
procedure TxsAdd.FormShow(Sender: TObject);
begin
 xh.Text :=DM.ADOxscxQuery.Fieldbyname('XH').AsString;
 begin
  with DM.ADOxscxQuery DO
  begin
   SQL.Clear;
   SQL.Add('Select * from xscx_view Where xh='''+xh.Text+'''');
   Open;
   if RecordCount<>0 then
   begin
    //xh.Text :=Fieldbyname('XH').AsString;
    Edit35.Text := Fieldbyname('ksh').AsString;
    Edit34.Text := Fieldbyname('kybm').AsString;
    Edit33.Text := Fieldbyname('xm').AsString;
    Edit32.Text := Fieldbyname('zym').AsString;
    ComboBox12.Text := Fieldbyname('xb').AsString;
    DateTimepicker1.DateTime :=StrToDate(Fieldbyname('csrq').AsString);
    Edit30.Text := Fieldbyname('sfzh').AsString;
    Edit29.Text := Fieldbyname('zzmmmc').AsString;
    mzmc.Text := Fieldbyname('mzmc').AsString;
    xbmc.Text := Fieldbyname('xbmc').AsString;
    Edit40.Text := Fieldbyname('zymc').AsString;
    Edit41.Text := Fieldbyname('bjmc').AsString;
    xzComboBox.Text := Fieldbyname('xzmc').AsString;
    Edit38.Text := Fieldbyname('sf').AsString;
    Edit31.Text := Fieldbyname('lydq').AsString;
    jzxm.Text := Fieldbyname('jzxm').AsString;
    Edit36.Text := Fieldbyname('lxdh').AsString;
    Edit39.Text := Fieldbyname('jtdz').AsString;
    Edit28.Text := Fieldbyname('yzbm').AsString;
    Edit27.Text := Fieldbyname('xkml').AsString;
    Edit26.Text := Fieldbyname('byxxmc').AsString;
    Edit37.Text := Fieldbyname('zylb').AsString;
    DateTimepicker2.DateTime :=StrToDate(Fieldbyname('lqsj').AsString) ;
   end
   else
   begin
    xh.Text :='';
    Edit35.Text := '';
    Edit34.Text := '';
    Edit33.Text := '';
    Edit32.Text := '';
    Edit30.Text := '';
    Edit29.Text := '';
    mzmc.Text := '';
    xbmc.Text := '';
    Edit40.Text := '';
    Edit41.Text := '';
    xzComboBox.Text := '';
    Edit38.Text := '';
    Edit31.Text := '';
    jzxm.Text := '';
    Edit36.Text := '';
    Edit39.Text := '';
    Edit28.Text := '';
    Edit27.Text := '';
    Edit26.Text := '';
    Edit37.Text := '';
   end;
  end;
 end;
end;

解决方案 »

  1.   

    SQL.Add('Select * from xscx_view Where xh='+''''+xh.Text+'''');
      

  2.   

    SQL.Add('Select * from xscx_view Where xh='+''''+xh.Text+'''');
    请问是这个语句有问题吗?还是别的原因呢?
      

  3.   

    但不是这个问题嘛,提示是这样的:
    project projext1.exe raised exception class EConvertError with message '''is not a valid date'.process stopped.used step or run to continue
      

  4.   

    怀疑是不是有日期型的字段使用了ASString的转换,而且,存在该字段为空的数据!!!
    未证实,只是推测
      

  5.   

    也不是日期有问题啦,我写的日期是:
    Fieldbyname('csrq').AsString:=FormatDateTime('yyyy-mm-dd',DateTimepicker1.DateTime);
    调试时没有出错啦,是运行时报错啦,真不知道是什么原因呢,曾经我已经调试通过啦,并且运行时也没有报错,但过了一段时间后,我并没有作任何的修改操作,再进行程序的运行就报这样的错误啦,请问这是什么原因呢?
      

  6.   

    而在显示明细时日期是这样显示的:
    DateTimepicker1.DateTime :=StrToDate(Fieldbyname('csrq').AsString);
    这样都会有错吗?
      

  7.   

    if the date is empty ,
    you can pass a  default data .