我的查询代码:
begin
 if edit1.Text='' then
    showmessage('请入图书证号')
 else
 begin  F_DM.Cds_clsoder.Close;
  F_DM.Cds_clsoder.CommandText:='select * from clsoder where class_master='+edit1.Text;
  F_DM.Cds_clsoder.Execute;
  F_DM.Cds_clsoder.Open;
  F_DM.Cds_clsoder.Refresh;
  end;
end;
查询结果出错提示:project client.exe raise exception class EOleException with message '列名'11225'无效'。process stop....
  无法查到当图书证号为:11225时所有的对应记录。请高手指点。谢谢!

解决方案 »

  1.   

    F_DM.Cds_clsoder是 clientdataset吗?  F_DM.Cds_clsoder.Execute;
      F_DM.Cds_clsoder.Open;只用下面那句就可以了吧 。
      

  2.   

    对的。F_DM.Cds_clsoder是 clientdataset
    我要求是当在Edit1.text中输入图书证号时,在DBgrid中显示出与图书证号相对应的所有记录。
    F_DM.Cds_clsoder.Execute;
      F_DM.Cds_clsoder.Open;
    也一样出错,怎么办?十分感谢!
      

  3.   

    execute是执行commandText用的,我去掉F_DM.Cds_clsoder.Execute;或去掉 F_DM.Cds_clsoder.Refresh;或两句都去掉都试过,调试结果出现同样的错误。很怪!
      

  4.   

    双击Cds_clsoder控件,看看是不是有静态字段,而有一个字段名是11225,表格中正好没有与之对应的字段,导致查询出错
      

  5.   

    11225不是字段名,它是字段bookNo里的一个记录。双击Cds_clsoder控件,里面是空的。怎么办?
      

  6.   

    class_master是什么类型?如果是字符型,那这样写试一下
    F_DM.Cds_clsoder.CommandText:='select * from clsoder where class_master='
    + QuotedStr(edit1.Text);
      

  7.   

    是不是少了引号
    F_DM.Cds_clsoder.CommandText:='select * from clsoder where class_master='''+edit1.Text+'''';
      

  8.   

    madyak说对了!我的问题解决了。非常感谢楼上的各位朋友。一个引号,烦得我快疯了,编程真苦!!
      

  9.   

    大家来加入DELPHI程序群1805366 一起进步
      

  10.   

    是少了引號.
     F_DM.Cds_clsoder.CommandText:='select * from clsoder where class_master='
    + '''' +  edit1.Text + '''' ;