日期:2014-05-17  浏览次数:20992 次

执行存储过程怎么传入参数

public DataSet GetPuchRecp(string sPuchrecpCode)
    {
        string sql = ConfigurationManager.ConnectionStrings["FEDZWEBtest"].ToString() ;
        SqlConnection sqlCon = new SqlConnection(sql) ;
        DataSet ds = new DataSet() ;

        SqlCommand cmd = new SqlCommand("sp_BS_PuchRecpTOEFLY", sqlCon) ; //sp_BS_PuchRecpTOEFLY 存储过程
        cmd.CommandType = CommandType.StoredProcedure;
                                            //@sPuchrecpCode 存储过程中的参数
        cmd.Parameters.Add(new SqlParameter("@sPuchrecpCode", SqlDbType.VarChar, 8));
        cmd.Parameters["@sPuchrecpCode"].Direction = ParameterDirection.Input;
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        adp.Fill(ds);
        return ds;
    }

我执行后提示没有传入参数,我不知道怎么传,方法里的sPuchrecpCode我不知道在什么地方用,请高手指点一下,我是刚学ASP的不知道怎么弄
------最佳解决方案--------------------

public DataSet GetPuchRecp(string sPuchrecpCode)
    {
        string sql = ConfigurationManager.ConnectionStrings["FEDZWEBtest"].ToString() ;
        SqlConnection sqlCon = new SqlConnection(sql) ;
        DataSet ds = new DataSet() ;

        SqlCommand cmd = new SqlCommand("sp_BS_PuchRecpTOEFLY", sqlCon) ;
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add(new SqlParameter("@sPuchrecpCode", SqlDbType.VarChar, 8)); //增加并定义参数@sPuchrecpCode
        cmd.Parameters["@sPuchrecpCode"].Value = sPuchrecpCode;                       //传入参数 @sPuchrecpCode的值
        cmd.Connection.Open();
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        adp.Fill(ds);
        return ds;
    }

------其他解决方案--------------------
sPuchrecpCode就是你的参数啊,看看有没有值
------其他解决方案--------------------
直接像普通sql语句一样用就ok了

假设数据库有存储过程 p_test,其有两个参数

写sql语句
string a="1";
string b="1";
string sql="p_test "+a+", "+b;


执行该sql语句就行了
------其他解决方案--------------------
GetPuchRecp方法里的sPuchrecpCode就是你需要的存储过程的值。