存储过程有三个参数,调用如下:            SqlConnection con = new SqlConnection(con_str);
            con.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = "ADD_BOOK_LIST";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.UpdatedRowSource = UpdateRowSource.None;
            SqlParameter param = new SqlParameter("@basic_url", SqlDbType.VarChar, 100, url);
            param.Direction = ParameterDirection.Input;
            cmd.Parameters.Add(param);
            param = new SqlParameter("@start", SqlDbType.Int, 4, start);
            param.Direction = ParameterDirection.Input;
            cmd.Parameters.Add(param);
            param = new SqlParameter("@end", SqlDbType.Int, 4, end);
            param.Direction = ParameterDirection.Input;
            cmd.Parameters.Add(param);
            cmd.ExecuteNonQuery();//这一步出错
            con.Close();
存储过程我已经测试过了,一切OK,就是这里调用出错,异常如下:
过程 'ADD_BOOK_LIST' 需要参数 '@basic_url',但未提供该参数。

解决方案 »

  1.   


    create proc ADD_BOOK_LIST
    @basic_url varchar(100),
    @start int,
    @end int
    as
    --.......
      

  2.   

    参数值没给?SqlParameter param = new SqlParameter("@basic_url", SqlDbType.VarChar, 100, url);//url是前面定义的变量
    这样不是给参数?那要怎么写的?谢谢了
      

  3.   

    SqlConnection con = new SqlConnection(con_str);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandText = "ADD_BOOK_LIST";
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.UpdatedRowSource = UpdateRowSource.None;
                SqlParameter param = new SqlParameter("@basic_url", SqlDbType.VarChar, 100, url);
                param.Direction = ParameterDirection.Input;
                cmd.Parameters.Add(param);
                SqlParameter  param1 = new SqlParameter("@start", SqlDbType.Int, 4, start);
                param.Direction = ParameterDirection.Input;
                cmd.Parameters.Add(param1);
                SqlParameter  param2 = new SqlParameter("@end", SqlDbType.Int, 4, end);
                param.Direction = ParameterDirection.Input;
                cmd.Parameters.Add(param2);
                cmd.ExecuteNonQuery();//这一步出错
                con.Close();
    这样试试
      

  4.   

    parameterName 要映射的参数的名称。 dbType SqlDbType 值之一。 size 参数的长度。 sourceColumn ------这个源列的名称。 4个参数的构造函数最后一个是源列的名称,应该不是值
      

  5.   

    SqlParameter param = new SqlParameter("@basic_url", SqlDbType.VarChar);
    para.value=url;
    param.Direction = ParameterDirection.Input;