我在做登录窗体时的button单击是件是:(源程序下[ODBC连接])
 数据库是sql库,表(dlk)中有两个字段,ID为char型长度为50,passwd为char型长度为20.ID为主键(有一条记录是ID号admin,passwd为admin) 但总是出显这样的错误:project project1.exe raised exception class eoleexception with message '参数类型不正确,或不在可以接受的
范围之内,可与其他参数冲突。'process stopped ,use step or run to continue. 为了解决问题我又在dlk表是加了一条记录,我是这样加的:ID号是"111"passed为“111”,这次在i_user.Text中输入111,很顺利的能登录。
    我想是我的表的问题就重建了一个表,记录如上同。但是效果和上面一样。
    我又重建成了一个表,这次(ID为varchar,passed为varchar),记录如上。结果与上同。请问各位,这是怎么回事呀?    try
    Database1.Connected:=True;
    T_user.Filter:='ID='''+i_user.Text+'''';
    T_user.Filtered:=True;
    T_user.Open;
  except
    Application.MessageBox('请与系统管理员联系。', '数据库连接错误!', MB_OK);
    Application.Terminate;
  end;
  if T_user.RecordCount=1 then
  begin
    if T_user['PASSWD']=i_passwd.Text then
    begin        F_login.Hide;
        F_main.show;
      end
      else
      Application.MessageBox('请确认用户名是否正确!', '无此用户', MB_OK);
    end
    else
      Application.MessageBox('请确认密码,注意大小写!', '密码不匹配', MB_OK);
  end;

解决方案 »

  1.   

    你的问题是由于数据类型的原因,你应该看看数据类型的定义
    char    的长度是固定的,你定义了50位,它就是50位,不够以空格补齐。
    varchar 的长度是以你的数据长度为准,3位就是3位。
      

  2.   

    最好是定义成varchar,不要再定义成char,否则错误不断
      

  3.   

    建议使用SQL查询实现,不要使用过滤的方式!