提示错误信息是.Frameworks.BaseException: 找不到存储过程 'sp_App_ChangeAccEdit'。
dal文件namespace ISS.OA.DAL
{
    /// <summary>
    /// 会计科目申请单
    /// </summary>
    public class App_ChangeAccDAL : ApplicationDAL
    {
        /// <summary>
        /// 获取指定的Id记录
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public App_ChangeAccInfo GetModelInfo(string Id)
        {
            string sql = "SELECT * FROM vw_App_ChangeAcc"
              + " WHERE ID = @ID";
            DbCommand dbCommand = db.GetSqlStringCommand(sql);
            //参数
            db.AddInParameter(dbCommand, "@ID", DbType.AnsiString, Id);            using (IDataReader dr = db.ExecuteReader(dbCommand))
            {
                if (dr.Read())
                {                    return GetModelInfo(GetApplication(Id), dr);
                }
                else
                {
                    throw new BaseException(2000, "单据 " + Id + " 不存在!");
                }
            }
        }        /// <summary>
        /// 填充类
        /// </summary>
        /// <param name="application"></param>
        /// <param name="dr"></param>
        /// <returns></returns>
    
        private static App_ChangeAccInfo GetModelInfo(ApplicationInfo application, IDataReader dr)
        {            App_ChangeAccInfo modelInfo = new App_ChangeAccInfo(
                application,
                GetString(dr["app_Type"]),
                GetString(dr["app_NeiRong"]),
                GetString(dr["app_NewName"]),
                GetString(dr["app_NewID"]),
                GetString(dr["app_OldName"]),
                GetString(dr["app_OldID"])
                );            return modelInfo;
        }
        /// <summary>
        /// 操作Job权限开通申请单
        /// </summary>
        /// <param name="application">申请单据</param>
        /// <param name="operate">操作类型(1.申请 2.修改 3.保存 4.提交)</param>
        /// <param name="user">操作员工</param>
        public override void Edit(ApplicationInfo application, int operate, EmployeeInfo user)
        {
            App_ChangeAccInfo modelInfo = (App_ChangeAccInfo)application;            using (DbConnection connection = db.CreateConnection())
            {
                connection.Open();
                DbTransaction transaction = connection.BeginTransaction();                try
                {
                    base.Edit(modelInfo, ref operate, user, transaction);
                                       DbCommand dbCommand = db.GetStoredProcCommand("sp_App_ChangeAccEdit");
               
                    // 参数
                    db.AddParameter(dbCommand, "@RETURN_VALUE", DbType.Int32, ParameterDirection.ReturnValue, String.Empty, DataRowVersion.Default, DBNull.Value);
                    db.AddInParameter(dbCommand, "@Application", DbType.AnsiString, modelInfo.Id);                    db.AddInParameter(dbCommand, "@app_Type", DbType.AnsiString, modelInfo.Rbltype);
                    db.AddInParameter(dbCommand, "@app_NeiRong", DbType.AnsiString, modelInfo.Rblsubtype);
                    db.AddInParameter(dbCommand, "@app_NewName", DbType.AnsiString, modelInfo.app_NewName);
                    db.AddInParameter(dbCommand, "@app_NewID", DbType.AnsiString, modelInfo.app_NewID);
                    db.AddInParameter(dbCommand, "@app_OldName", DbType.AnsiString, modelInfo.app_OldName);
                    db.AddInParameter(dbCommand, "@app_OldID", DbType.AnsiString, modelInfo.app_OldID);                    db.AddInParameter(dbCommand, "@Operate", DbType.Int16, operate);
                    db.AddInParameter(dbCommand, "@OperatorID", DbType.Int32, user.Id);
                    ExecuteProc(db, dbCommand, transaction);                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                   throw (ex);
                }
                finally
                {
                    connection.Close();
                }
            }
        }
    }
}sp_App_ChangeAccEdit 是可以生成的 请问是什么错误呢?

解决方案 »

  1.   

    可以看到存储过程
     IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_App_ChangeAccEdit')
    BEGIN
    DROP  Procedure  sp_App_ChangeAccEdit
    ENDGO/******************************************************************************
    ** 文件: sp_App_ChangeAccEdit.sql
    ** 名称: sp_App_ChangeAccEdit
    ** 功能: 会计科目申请单
    ** 作者: WLW
    ** 发布: 2010-01-12
    **
    *******************************************************************************
    ** 返回值列表
    *******************************************************************************
    ** 返回值: 涵义:
    **  ------- -----------------------------------------------------------
    ** 0 成功
    **
    *******************************************************************************
    ** 其它说明
    *******************************************************************************
    **
    **
    *******************************************************************************
    ** 修订日志
    *******************************************************************************
    ** 日期: 作者: 修订备注:
    ** ---------- -------- -----------------------------------------------
    **
    **
    *******************************************************************************/CREATE Procedure sp_App_ChangeAccEdit@Application VARCHAR(20), -- 申请单据编号
    @app_Type nvarchar(20), --申请类型
    @app_NeiRong nvarchar(50), --申请明细
    @app_NewName nvarchar(50), --新科目
    @app_NewID nvarchar(20), --新ID
    @app_OldName nvarchar(50), --原科目
    @app_OldID nvarchar(20), --原ID
    @Operate INT, -- 操作类型(1.申请 2.修改)
    @OperatorID INT -- 操作员工编号
    AS
    SET XACT_ABORT ON
    BEGIN TRAN

    IF @Operate IN (1, 3) -- 新增,保存
    BEGIN
    INSERT INTO [App_ChangeAcc]
               ([application]
               ,[app_Type]
               ,[app_NeiRong]
               ,[app_NewName]
               ,[app_NewID]
               ,[app_OldName]
               ,[app_OldID]
               
    )VALUES
    (
    @Application,
    @app_Type,
    @app_NeiRong,
    @app_NewName,
    @app_NewID,
    @app_OldName,
    @app_OldID
    )
    END
    ELSE IF @Operate IN (2, 4) -- 修改、提交
    BEGIN
    UPDATE App_ChangeAcc SET 
    app_Type=@app_Type,
    app_NeiRong=@app_NeiRong,
    app_NewName=@app_NewName,
    app_NewID=@app_NewID,
    app_OldName=@app_OldName,
    app_OldID=@app_OldID
    WHERE application = @Application

    END

    COMMIT TRAN

    RETURN 0

    GOGRANT EXEC ON sp_App_ChangeAccEdit TO PUBLICGO
      

  2.   

    代码很长,我就不看了,但是找不到存储过程这个错误一般有几点原因:1、名称拼写错误(最常见的)2、权限控制。有些是dbo才有执行权限的3、数据库是否正确(机率比较小)自己找找是那几点吧