cmd.Parameters.Add(new SqlParameter("@Title",  tbTitle.Text.ToString ()));
            SqlParameter arUrlPter2 = new SqlParameter("@LINK", tbUrl.Text);//获取参数文章链接
            cmd.Parameters.Add(arUrlPter2);
            SqlParameter arUrlPter3 = new SqlParameter("@CategoryTextID", dplistUrl.SelectedValue.ToString());//获取参数文章类型
            cmd.Parameters.Add(arUrlPter3);
            SqlParameter arUrlPter4 = new SqlParameter("@IsURLLINK", "Y");//获取参数,Y表示是链接
            cmd.Parameters.Add(arUrlPter4);
            SqlDataReader Rdr =urlCmd.ExecuteReader();
我断点时,tbTitle.Text的值已经获取到,但是程序运行到 SqlDataReader Rdr =urlCmd.ExecuteReader()时,却提示没有提供参数(提示信息:过程或函数 'sp_Article_url' 需要参数 '@Title',但未提供该参数。)

解决方案 »

  1.   

    存储过程 sql语句中没写 @Title吧?
      

  2.   

    写了。存储过程如下:
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER proc [dbo].[sp_Article_url]
    @Title nvarchar(80),@Link nvarchar(80),@CategoryTextID nvarchar(80),@IsURLLink char(2)
    as
    begin
    declare @Errorsave int--存放错误信息
    declare @CategoryID nchar(10)
    set @Errorsave = 0--执行成功返回零
    --判断标题或链接是否重复
    if(exists(select Title from Article where Link = @Link or Title = @Title))
    begin  
    set @Errorsave = 1;
    goto TheEnd;
    end
    begin
    --把@CategoryTextID转为CategoryID
    set @CategoryID = (select CategoryID from Category where CategoryDescription = @CategoryTextID)
    end
    if(exists(select CategoryID from Category where CategoryID = @CategoryID))
    begin
    --在Article表插入新的记录
    Insert into Article(Title,Link,CategoryID,AddTime,IsURLLINK) values(@Title,@Link,@CategoryID,getdate(),@IsURLLink)
    end
    else
    begin  
    set @Errorsave = 3;
    goto TheEnd;
    end
         
    if(@@ERROR<>0)--判断错误
    begin
    set @Errorsave =4;
    goto TheEnd;
    end
    TheEnd:
    select @Errorsave
    end
      

  3.   

    SqlParameter arUrlPter2 = new SqlParameter("@Link ", tbUrl.Text);            cmd.Parameters.Add(arUrlPter2);
      

  4.   

    你的urlcmd对象添加了参数吗?
      

  5.   

    你刚开始添加参数的时候用的是cmd对象 但是执行的时候用的是urlCmd
    是不是这个地方的问题啊?
      

  6.   

    你这样试一下 cmd.ExecuteReader() 然后用一个SqlDataReader对象接收 试一下