报错   过程或函数 'news_insert' 需要参数 '@title',但未提供该参数。
但是我已经查过了,而且用断点来调试,
        public bool Insert(News n)
        {//TODO:增加新闻
            bool flag = false;
            DataTable dt = new DataTable();
            string procName = "news_insert";
            SqlParameter[] paras = new SqlParameter[]
            {
                new SqlParameter("@title",n.Title),
                new SqlParameter("@content",n.Content),
                new SqlParameter("@caid",n.CaId)
            }; 
           int res = sqlhelper.ExecuteNonQuery(procName, paras, CommandType.StoredProcedure);然后,网页中弹出过程或函数 'news_insert' 需要参数 '@title',但未提供该参数。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 过程或函数 'news_insert' 需要参数 '@title',但未提供该参数。源错误: 
行 58:             {
行 59:                 cmd.Parameters.AddRange(paras);
行 60:                 res = cmd.ExecuteNonQuery();
行 61:             }
行 62:             return res;
 
但是我已经查过了,而且用断点来调试,在new SqlParameter("@title",n.Title), 看到n.Title中是有值的,而且查了数据库中的对应的值,再三对比,名称都是正确一致的,但是为什么一直

解决方案 »

  1.   

    是否给参数设定了DbType和Size呢?
    把存储过程也贴出来看看
      

  2.   

    SqlParameter[] p = {
    new SqlParameter("@title", SqlDbType.Char,100),
    ....}p[0].value = n.title;其他自己写吧;
    你没有指定传入参数的数据类型,而且我也没见过你这么写啊
      

  3.   

    USE [newssystem]
    GO
    /****** Object:  StoredProcedure [dbo].[news_insert]    Script Date: 07/05/2010 19:29:23 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER procedure [dbo].[news_insert]
    @title varchar(100),
    @content text,
    @caid int
    as
    begin
    INSERT INTO news (title, [content], caId) VALUES(@title,@content,@caid)
    end
    这是存储过程的代码
      

  4.   

    new SqlParameter( "@title ", SqlDbType.varchar,100), 
      

  5.   

     public int addNews(News news) 
            {
                SqlParameter [] pars = 
                {
                    new SqlParameter("@title",news.title),
                    new SqlParameter("@context",news.context),
                    new SqlParameter("@addtime",news.addtime)
                };
                int rowsAffected = 0;
                DbHelperSQL.RunProcedure("AddNews", pars,out rowsAffected);
                return rowsAffected;
            }