使用的是ADOStoredProc组件,名称是Pr_GetUserLogin,下面这段程序在Pr_GetUserLogin.Parameters.ParamByName('@UserName').Value这条语句提示没有@UserName,可是我的存储过程里的确有这个参数,而且在delphi里的属性也自动找到了这个存储过程的参数,不知为什么,请教各位with frmDataModule do
begin
Pr_GetUserLogin.Close;
Pr_GetUserLogin.Parameters.Clear;
Pr_GetUserLogin.Parameters.ParamByName('@UserName').Value:= trim(eUserName.Text);
Pr_GetUserLogin.Open;
end;

解决方案 »

  1.   

    with frmDataModule do
    begin
    Pr_GetUserLogin.Close;
    Pr_GetUserLogin.Parameters.Refresh;//Refresh
    Pr_GetUserLogin.Parameters.ParamByName('@UserName').Value:= trim(eUserName.Text);
    Pr_GetUserLogin.Open;
    end;Refreshes a parameter collection.Delphi syntax:procedure Refresh;C++ syntax:bool __fastcall Refresh(void);DescriptionCall Refresh to ensure a parameter collection has the most up to date information on available parameters.
      

  2.   

    Pr_GetUserLogin.Parameters.Refresh;这样出错“调用方法不对”
    SOS,求救!
    顶一下
      

  3.   

    with ADOStoredProc1 do
    begin
      Close;
      ProcedureName:='Pr_GetUserLogin';
      Parameters.Refresh;
      Parameters.ParamByName('@UserName').Value:= trim(eUserName.Text);
      Open;
    end;
      

  4.   

    Pr_GetUserLogin.Close;
    Pr_GetUserLogin.Parameters.Clear;//这里调用了clear,所以找不到参数,删除这句Pr_GetUserLogin.Parameters.Refresh;Pr_GetUserLogin.Parameters.ParamByName('@UserName').Value:= trim(eUserName.Text);
    Pr_GetUserLogin.Open;//这里是不是没有返回数据集?是的话,删掉这句,用下面这个调用Pr_GetUserLogin.execute