救救小弟我吧!

TripleH 2003-07-28 08:15:15
我的程序中有这样的代码:

with MainData.ADOQuery1 do
begin
Close;
sql.clear;
SQL.Add('insert into result(s_no,s_name,s_result,s_subject,s_type,s_date) values ('+''''+Edit1.text+''''+','+''''+dbedit1.field.text+''''+','+''''+LabeledEdit1.Text+''''+','+''''+DBComboBoxEh1.Text+''''+','+''''+Combobox1.Text+''''+','+''''+DateTimeTOStr(DateTimePicker1.Datetime)+''''+')');
ExecSQL;
end;


执行时要出错,我认为是dbedit1的错,因为我想把dbedit1当前显示的文本写到另一张表里,但是dbedit1.Text的话写出来是空的!!dbedit1.field.text这样的话又会出错!怎么办?
...全文
38 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
netrobo 2003-07-28
  • 打赏
  • 举报
回复
不知你的DBEdit1的感知查询是不是AdoQuery1,如要是的话,待AdoQuery1关闭后,DBEdit1.Text将会是空值。
数据感知控件的值最好不要用在代码中,因为它只是界面的一部分,如要非要用的话,直接使用感知控件对应字段的值即可,这样可使代码和界面分离,增强程序的移植性
wyb716 2003-07-28
  • 打赏
  • 举报
回复
dbedit1.Text也行
windwather 2003-07-28
  • 打赏
  • 举报
回复
DBEdit1.DataSource.DataSet[dbedit1.field.fieldname].asstring;
liangzisiyun 2003-07-28
  • 打赏
  • 举报
回复
保持好的代码习惯,减少出错的可能性。在字段内容这前最好加个去空格的函数TRIM()。
xybh97102 2003-07-28
  • 打赏
  • 举报
回复
DBEdit1.DataSource.DataSet.FindField(DBEdit1.Field.FieldName).asstring;
wudi_1982 2003-07-28
  • 打赏
  • 举报
回复
dbedit1.field.text改为dbedit1.Datasource.dataset.fieldbyname(dbedit1.datafield).asstring;
huojiehai 2003-07-28
  • 打赏
  • 举报
回复
dbedit1.field.text改为dbedit1.Datasource.dataset.fieldbyname(dbedit1.datafield).asstring;
其他Db...照改
huojiehai 2003-07-28
  • 打赏
  • 举报
回复
dbedit1.field.text改为Db.Datasource.dataset.fieldbyname(dbedit1.datafield).asstring;
其他Db...照改

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧