我调用存储过程的时候总是报错,提示找不到参数,不知道什么原因我建的存储过程是这样,不知道有没有什么错CREATE procedure infor 
@singlenumber varchar(20),
@singlestate varchar(50),
@consiname varchar(50),
@goodsname varchar(50),
@amount bigint,
@arrivate varchar(50),
@recedate datetime,
@piondate datetime,
@leastdate datetime,
@noremit varchar(50),
@consinphone varchar(50)
as
insert into information values(@singlenumber,@singlestate,@consiname,@goodsname,@amount,@arrivate,@recedate,@piondate,@leastdate,@noremit,@consinphone)
insert into amw values(@singlenumber,@singlestate,@consiname,@goodsname,@amount,@arrivate,@recedate,@piondate,@leastdate,@noremit,@consinphone)
GO

解决方案 »

  1.   

    insert into information values(@singlenumber,@singlestate,@consiname,@goodsname,@amount,@arrivate,@recedate,@piondate,@leastdate,@noremit,@consinphone)
    改成
    insert into information (各字段名......) values(@singlenumber,@singlestate,@consiname,@goodsname,@amount,@arrivate,@recedate,@piondate,@leastdate,@noremit,@consinphone)2个都改一下试试
      

  2.   

    找了个差不多的代码,你自己看看吧。
    dm.jiaofeiProc.Close;
    dm.jiaofeiProc.ProcedureName:='renyuan_p';
    dm.jiaofeiProc.Parameters.Refresh;
    dm.jiaofeiProc.Parameters.ParamByName('@id').Value:=edit11.text;
    dm.jiaofeiProc.Parameters.ParamByName('@name').Value:=edit1.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@sex').Value:=combobox1.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@carid').Value:=edit2.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@birth').Value:=edit3.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@huji').Value:=combobox2.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@mobile').Value:=edit5.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@homephone').Value:=edit6.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@contact').Value:=edit4.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@otherphone').Value:=edit7.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@driver').Value:=combobox3.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@drivertime').Value:=combobox5.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@control').Value:=StatusBar1.Panels[1].Text+' '+time1;
    dm.jiaofeiProc.Parameters.ParamByName('@ksid').Value:=edit9.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@pass').Value:=edit10.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@factory').Value:=edit15.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@education').Value:=combobox4.Text;
    dm.jiaofeiProc.Parameters.ParamByName('@pinyong').Value:=combobox6.Text;
    dm.jiaofeiProc.ExecProc;
      

  3.   

    你的问题很不明确,是调用的时候有问题还是存储过程本身有问题。存储过程应该现在查询分析器中进行测试,如果通过ado调用存储过程时如果多次调用 prepared 要修改为true
      

  4.   

    先在“查询分析器”中检查一下,看你的sql对不?
    然后看代码中有没有给所有的参数赋值?
      

  5.   

    先再查询分析起中执行,看看代码有没有问题,如果没有,则使用ADO组件调用此存储过程时,先Parameters.clear;然后逐个参数Parameters.create
    最后赋值。
      

  6.   

    如果不是动态添加参数的话,在给存储过程参数赋值前,要调用AdoStoredProc1.refresh;