strDelCommand strInsCommandadapter.InsertCommand.Parameters.AddRange(LineFitCurveParms()); 
adapter.DeleteCommand.Parameters.AddRange(LineFitCurveParms()); 你strDelCommand ,strInsCommand语句中参数都不一样,但是后的AddRange却都是一样的.
你这个LineFitCurveParms()里面代码是什么,贴出来看看.

解决方案 »

  1.   

     //返回压实曲线数据参数数组
            public SqlParameter[] LineFitCurveParms()
            {
                SqlParameter[] parms = new SqlParameter[]{
                new SqlParameter("@LineNo", SqlDbType.Int),
                new SqlParameter("@TrackNo", SqlDbType.Int),
                new SqlParameter("@DepthBeg", SqlDbType.Real),
                new SqlParameter("@DepthEnd", SqlDbType.Real),
                new SqlParameter("@DepthFitBeg", SqlDbType.Real),
                new SqlParameter("@DepthFitEnd", SqlDbType.Real),
                new SqlParameter("@CoeffA", SqlDbType.Real),
                new SqlParameter("@CoeffB", SqlDbType.Real),
                new SqlParameter("@ACDepBeg", SqlDbType.Real),
                new SqlParameter("@ACDepEnd", SqlDbType.Real),
                new SqlParameter("@ACFitBeg", SqlDbType.Real),
                new SqlParameter("@ACFitEnd", SqlDbType.Real)
                //new SqlParameter("@SegNum", SqlDbType.Int),
                };
                return parms;
            }
      

  2.   

    我送进去的表中的内容是正确的,但老是出现上面的问题?
    是不是与数据库主键冲突时的错误还是?
    我用的数据库是SQL2000
    谢谢
      

  3.   

    终于找出了用适配器不能批量更新的原因,由于在批量更新中要用到列头,因此调用参数构造函数时必须是列头确定的,必须调用下面的参数构造函数,
    SqlParameter (String, SqlDbType, Int32, String) 
    用参数名称、SqlDbType、大小和源列名称初始化 SqlParameter 类的新实例。
    而不是SqlParameter (String, SqlDbType) 
    用参数名称和数据类型初始化 SqlParameter 类的新实例。 谢谢了呵呵