把表里的一个字段原来的类型是VarChar改成现在的类型是Float后(改之前表里的数据已经全部删关了),数据就写不进去了,提示不匹配的类型,后来我把表重新建立过(先删除)也是不行,我在DELPHI里把ADOConnection、ADODataSet等也重新删除再建立过,还是不行!我的代码如下:
procedure Tdengjichengbenfm.BitBtn1Click(Sender: TObject);
begin
if ComboBox3.Text = '' then
begin
ShowMessage('你没有选择客户名称!请选择客户名称。')
end
else if ComboBox2.Text = '' then
begin
ShowMessage('你没有选择合同编号!请选择合同编号。')
end
else if ComboBox1.Text = '' then
begin
ShowMessage('你没有选择费用性质!请选择费用性质。')
end
else if Edit1.Text = '' then
begin
ShowMessage('金额不能为空!')
end
else
begin
ADODst.Open;
ADODst.Append;
ADODst.FieldByName('kh_khmc').AsString := ComboBox3.Text;
ADODst.FieldByName('ht_id').AsString := ComboBox2.Text;
ADODst.FieldByName('htcbmx_zcrq').AsString := DateTimeToStr(DateTimePicker1.DateTime);
ADODst.FieldByName('htcbmx_cbmc').AsString := ComboBox1.Text;
ADODst.FieldByName('htcbmx_je').Value:=StrToFloat(Edit1.Text);
//这样也不行: ADODst.FieldByName('htcbmx_je').AsString := Edit1.Text;
ADODst.FieldByName('htcbmx_jsr').AsString := Edit3.Text;
ADODst.FieldByName('htcbmx_bz').AsString := Edit2.Text;
ADODst.Post;
ShowMessage('记录添加成功!');
close;
end;
end;
procedure Tdengjichengbenfm.BitBtn1Click(Sender: TObject);
begin
if ComboBox3.Text = '' then
begin
ShowMessage('你没有选择客户名称!请选择客户名称。')
end
else if ComboBox2.Text = '' then
begin
ShowMessage('你没有选择合同编号!请选择合同编号。')
end
else if ComboBox1.Text = '' then
begin
ShowMessage('你没有选择费用性质!请选择费用性质。')
end
else if Edit1.Text = '' then
begin
ShowMessage('金额不能为空!')
end
else
begin
ADODst.Open;
ADODst.Append;
ADODst.FieldByName('kh_khmc').AsString := ComboBox3.Text;
ADODst.FieldByName('ht_id').AsString := ComboBox2.Text;
ADODst.FieldByName('htcbmx_zcrq').AsString := DateTimeToStr(DateTimePicker1.DateTime);
ADODst.FieldByName('htcbmx_cbmc').AsString := ComboBox1.Text;
ADODst.FieldByName('htcbmx_je').Value:=StrToFloat(Edit1.Text);
//这样也不行: ADODst.FieldByName('htcbmx_je').AsString := Edit1.Text;
ADODst.FieldByName('htcbmx_jsr').AsString := Edit3.Text;
ADODst.FieldByName('htcbmx_bz').AsString := Edit2.Text;
ADODst.Post;
ShowMessage('记录添加成功!');
close;
end;
end;
另外数据类型改成numeric,会好些,比如在小数点的问题上
ADODst.FieldByName('htcbmx_je').Value := Edit1.Text;
代码有改过的呀?到现在为止还是不行,试过好多方法了
要保证Edit1.text能转化为FLOAT.另:重新编译。如果有DBGRID-》FIELD最好也要重新载入