我在Delphi中使用了DataModule进行表连接,但在运行时显示EDataBaseError,具体是‘DBEdit1:Field ‘password’not  found’,该怎么解决?如果在窗体create事件中动态添加属性,语句怎么写?

解决方案 »

  1.   

    你的commandtext语句发过来看看~
      

  2.   

    一般就是password没有这个字段,可能是你输错了~~检查下!如果password是在where子句,比如  ……where PW=:password~~检查下password前面有没有空格,=:和password之间不能有空格!!!
      

  3.   

    DBEdit+DataSource+ADOQuery+ADOConnection
    ADOConnection可以放在DataModule中,或者后面3个都放在DataModule也行,窗体中Uses DataModule设置:
    1.ADOConnection的ConnectionString属性,LoginPrompt為False
    2.ADOQuery的Connection选择ADOConnection,SQL属性输入查询语句,如:select ID,PassWord from t
    3.DataSource的DataSet属性,选择ADOQuery
    4.DBEdit的DataSource属性选择DataSource,DataField属性输入PassWord
    5.ADOQuery的Active为true代码动态设置一样
      

  4.   

    这是我的添加语句,在这我暂时还没有用SQL语句进行添加,
    dbedit1.ReadOnly:=false;
    dbedit2.ReadOnly:=false;
    dbedit3.ReadOnly:=false;
    dbedit4.ReadOnly:=false;
    dbedit5.ReadOnly:=false;
    dbedit6.ReadOnly:=false;
    DataModule1.adoquery1.Active:=true;
    DataModule1.adoquery1.Edit;
    DataModule1.adoquery1.Append;
    下面是我的动态添加属性语句
    procedure TForm4.FormCreate(Sender: TObject);
    begin
    DBEdit1.DataField :='UserID';
    DBEdit2.DataField :='UserName';
    DBEdit3.DataField :='系统用户表.Sex';
    DBEdit4.DataField :='Password';
    DBEdit5.DataField :='UserRole';
    DBEdit6.DataField :='系统用户表.Department';
    end;
    end.
    补充:我原来就是按三楼所说的那样做的,不过在ADOQuery的SQL属性中我输入的输入查询语句是:select * from a,b,c,d,e,f;
      

  5.   

    补充:上面的Password问题解决了,但是一涉及到DataField是‘系统用户表.Department’的还是出现上面的错误!
      

  6.   

    楼主可以用一个
    showmessage();
    显示那条语句是否正确的
      

  7.   

    没有这样的列名系统用户表.Department不同的表有若重名,而又没有用别名的话。会按表顺序在字段上加编号,如Department,Department_1,Department_2重名处理像这样
    select A.Department as X,B.Department AS Y ....
    然后用X,Y
      

  8.   

    编译是没有错误的,就是在运行的时候(点击登录按钮之后)会出现EDataBaseError,我先按照八号楼主的方法尝试一下,如果不行再求各楼主帮忙啊!在这先谢过了!