Ejemplo n.º 1
0
        protected void Delete(int IdUsuario, int IdPersona)
        {
            try
            {
                OpenConnection();
                SqlTransaction transaction = SqlConn.BeginTransaction();
                SqlCommand     cmdDelete;
                try
                {
                    cmdDelete = new SqlCommand("DELETE usuarios WHERE id_usuario=@id", SqlConn, transaction);
                    cmdDelete.Parameters.Add("@id", SqlDbType.Int).Value = IdUsuario;
                    cmdDelete.ExecuteNonQuery();

                    cmdDelete = new SqlCommand("DELETE personas WHERE id_persona=@id", SqlConn, transaction);
                    cmdDelete.Parameters.Add("@id", SqlDbType.Int).Value = IdPersona;
                    cmdDelete.ExecuteNonQuery();

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    Exception ExcepcionManejada = new Exception("Error al eliminar usuario y persona", ex);
                    throw ExcepcionManejada;// Agregar mensaje de error
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                CloseConnection();
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 ///
 /// </summary>
 public void BeginTransac()
 {
     if (SqlConn.State != ConnectionState.Open)
     {
         SqlConn.Open();
     }
     SqlTransac = SqlConn.BeginTransaction();
 }
Ejemplo n.º 3
0
        protected void Update(Usuario usuario, Persona persona)
        {
            PersonaAdapter personaData = new PersonaAdapter();

            try
            {
                OpenConnection();
                SqlTransaction transaction = SqlConn.BeginTransaction();
                SqlCommand     cmdUpdate;
                try
                {
                    cmdUpdate = new SqlCommand(
                        "UPDATE personas SET nombre=@nombre, apellido=@apellido, direccion=@direccion, email=@email, " +
                        "telefono=@telefono, fecha_nac=@fecha_nac, legajo=@legajo, tipo_persona=@tipo_persona, id_plan=@id_plan " +
                        "WHERE id_persona=@id",
                        SqlConn, transaction);
                    cmdUpdate.Parameters.Add("@id", SqlDbType.Int).Value = persona.ID;
                    personaData.CargarParametrosSql(cmdUpdate, persona);
                    cmdUpdate.ExecuteNonQuery();

                    cmdUpdate = new SqlCommand(
                        "UPDATE usuarios SET nombre_usuario=@nombre_usuario, clave=@clave, habilitado=@habilitado, " +
                        "nombre=@nombre, apellido=@apellido, email=@email, id_persona=@id_persona " +
                        "WHERE id_usuario=@id",
                        SqlConn, transaction);
                    cmdUpdate.Parameters.Add("@id", SqlDbType.Int).Value = usuario.ID;
                    CargarParametrosSql(cmdUpdate, usuario);
                    cmdUpdate.ExecuteNonQuery();

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    Exception ExcepcionManejada = new Exception("Error al actualizar usuario y persona", ex);
                    throw ExcepcionManejada;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                CloseConnection();
            }
        }
Ejemplo n.º 4
0
        protected void Insert(Usuario usuario, Persona persona)
        {
            PersonaAdapter personaData = new PersonaAdapter();

            try
            {
                OpenConnection();
                SqlTransaction transaction = SqlConn.BeginTransaction();
                SqlCommand     cmdInsert;
                try
                {
                    cmdInsert = new SqlCommand(
                        "INSERT INTO personas(nombre, apellido, direccion, email, telefono, fecha_nac, legajo, tipo_persona, id_plan)" +
                        "VALUES (@nombre, @apellido, @direccion, @email, @telefono, @fecha_nac, @legajo, @tipo_persona, @id_plan)" +
                        "SELECT @@identity",
                        SqlConn, transaction);
                    personaData.CargarParametrosSql(cmdInsert, persona);
                    persona.ID        = decimal.ToInt32((decimal)cmdInsert.ExecuteScalar());
                    usuario.IdPersona = persona.ID;

                    cmdInsert = new SqlCommand(
                        "INSERT INTO usuarios(nombre_usuario, clave, habilitado, nombre, apellido, email, id_persona)" +
                        "VALUES (@nombre_usuario, @clave, @habilitado, @nombre, @apellido, @email, @id_persona)" +
                        "SELECT @@identity",
                        SqlConn, transaction);
                    CargarParametrosSql(cmdInsert, usuario);
                    usuario.ID = decimal.ToInt32((decimal)cmdInsert.ExecuteScalar());

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    Exception ExcepcionManejada = new Exception("Error al insertar usuario y persona", ex);
                    throw ExcepcionManejada;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                CloseConnection();
            }
        }
Ejemplo n.º 5
0
        protected void Delete(int idCurso, int idTitular, DocenteCurso auxiliar)
        {
            try
            {
                OpenConnection();
                SqlTransaction transaction = SqlConn.BeginTransaction();
                SqlCommand     cmdDelete;
                try
                {
                    cmdDelete = new SqlCommand("DELETE docentes_cursos WHERE id_dictado=@id", SqlConn, transaction);
                    cmdDelete.Parameters.Add("@id", SqlDbType.Int).Value = idTitular;
                    cmdDelete.ExecuteNonQuery();

                    if (auxiliar != null)
                    {
                        cmdDelete = new SqlCommand("DELETE docentes_cursos WHERE id_dictado=@id", SqlConn, transaction);
                        cmdDelete.Parameters.Add("@id", SqlDbType.Int).Value = auxiliar.ID;
                        cmdDelete.ExecuteNonQuery();
                    }

                    cmdDelete = new SqlCommand("DELETE cursos WHERE id_curso=@id", SqlConn, transaction);
                    cmdDelete.Parameters.Add("@id", SqlDbType.Int).Value = idCurso;
                    cmdDelete.ExecuteNonQuery();

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    Exception ExcepcionManejada = new Exception("Error al eliminar curso", ex);
                    throw ExcepcionManejada;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                CloseConnection();
            }
        }
Ejemplo n.º 6
0
        protected void Update(Curso curso, DocenteCurso titular, DocenteCurso auxiliar)
        {
            DocenteCursoAdapter docenteCursoData = new DocenteCursoAdapter();

            try
            {
                OpenConnection();
                SqlTransaction transaction = SqlConn.BeginTransaction();
                SqlCommand     cmdUpdate;
                try
                {
                    cmdUpdate = new SqlCommand(
                        "UPDATE cursos SET id_materia=@id_materia,id_comision=@id_comision," +
                        "anio_calendario=@anio_calendario,cupo=@cupo " +
                        "WHERE id_curso=@id", SqlConn, transaction);
                    cmdUpdate.Parameters.Add("@id", SqlDbType.Int).Value = curso.ID;
                    CargarParametrosSql(cmdUpdate, curso);
                    cmdUpdate.ExecuteNonQuery();

                    cmdUpdate = new SqlCommand(
                        "UPDATE docentes_cursos SET id_curso=@id_curso,id_docente=@id_docente," +
                        "cargo=@cargo WHERE id_dictado=@id", SqlConn, transaction);
                    cmdUpdate.Parameters.Add("@id", SqlDbType.Int).Value = titular.ID;
                    docenteCursoData.CargarParametrosSql(cmdUpdate, titular);
                    cmdUpdate.ExecuteNonQuery();

                    if (auxiliar != null)
                    {
                        switch (auxiliar.State)
                        {
                        case BusinessEntity.States.New:
                            auxiliar.IdCurso = curso.ID;
                            cmdUpdate        = new SqlCommand(
                                "INSERT INTO docentes_cursos(id_curso,id_docente,cargo)" +
                                "VALUES (@id_curso,@id_docente,@cargo)" +
                                "SELECT @@identity", SqlConn, transaction);
                            docenteCursoData.CargarParametrosSql(cmdUpdate, auxiliar);
                            auxiliar.ID = decimal.ToInt32((decimal)cmdUpdate.ExecuteScalar());
                            break;

                        case BusinessEntity.States.Modified:
                            cmdUpdate = new SqlCommand(
                                "UPDATE docentes_cursos SET id_curso=@id_curso,id_docente=@id_docente," +
                                "cargo=@cargo WHERE id_dictado=@id", SqlConn, transaction);
                            cmdUpdate.Parameters.Add("@id", SqlDbType.Int).Value = auxiliar.ID;
                            docenteCursoData.CargarParametrosSql(cmdUpdate, auxiliar);
                            cmdUpdate.ExecuteNonQuery();
                            break;

                        case BusinessEntity.States.Deleted:
                            cmdUpdate = new SqlCommand("DELETE docentes_cursos WHERE id_dictado=@id", SqlConn, transaction);
                            cmdUpdate.Parameters.Add("@id", SqlDbType.Int).Value = auxiliar.ID;
                            cmdUpdate.ExecuteNonQuery();
                            break;
                        }
                    }

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    Exception ExcepcionManejada = new Exception("Error al insertar curso", ex);
                    throw ExcepcionManejada;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                CloseConnection();
            }
        }
Ejemplo n.º 7
0
        protected void Insert(Curso curso, DocenteCurso titular, DocenteCurso auxiliar)
        {
            DocenteCursoAdapter docenteCursoData = new DocenteCursoAdapter();

            try
            {
                OpenConnection();
                SqlTransaction transaction = SqlConn.BeginTransaction();
                SqlCommand     cmdInsert;
                try
                {
                    cmdInsert = new SqlCommand(
                        "INSERT INTO cursos(id_materia,id_comision,anio_calendario,cupo)" +
                        "VALUES (@id_materia,@id_comision,@anio_calendario,@cupo)" +
                        "SELECT @@identity", // Esta última línea es para recuperar el ID autogenerado desde la bd.
                        SqlConn, transaction);
                    CargarParametrosSql(cmdInsert, curso);
                    // Se obtiene el ID autogenerado y se lo guarda a la entidad.
                    curso.ID = decimal.ToInt32((decimal)cmdInsert.ExecuteScalar());

                    titular.IdCurso = curso.ID;
                    cmdInsert       = new SqlCommand(
                        "INSERT INTO docentes_cursos(id_curso,id_docente,cargo)" +
                        "VALUES (@id_curso,@id_docente,@cargo)" +
                        "SELECT @@identity", // Esta última línea es para recuperar el ID autogenerado desde la bd.
                        SqlConn, transaction);
                    docenteCursoData.CargarParametrosSql(cmdInsert, titular);
                    // Se obtiene el ID autogenerado y se lo guarda a la entidad.
                    titular.ID = decimal.ToInt32((decimal)cmdInsert.ExecuteScalar());

                    if (auxiliar != null)
                    {
                        auxiliar.IdCurso = curso.ID;
                        cmdInsert        = new SqlCommand(
                            "INSERT INTO docentes_cursos(id_curso,id_docente,cargo)" +
                            "VALUES (@id_curso,@id_docente,@cargo)" +
                            "SELECT @@identity", // Esta última línea es para recuperar el ID autogenerado desde la bd.
                            SqlConn, transaction);
                        docenteCursoData.CargarParametrosSql(cmdInsert, auxiliar);
                        // Se obtiene el ID autogenerado y se lo guarda a la entidad.
                        auxiliar.ID = decimal.ToInt32((decimal)cmdInsert.ExecuteScalar());
                    }

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    Exception ExcepcionManejada = new Exception("Error al insertar curso", ex);
                    throw ExcepcionManejada;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                CloseConnection();
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 向目标表中添加数据
        /// </summary>
        /// <param name="dt">目标数据</param>
        /// <param name="pairs">目标表字段信息</param>
        /// <param name="isRollack">错误时是否回滚,true表示回滚,否则跳过错误行,并提供错误报告</param>
        /// <returns></returns>
        public ResultModel AddData(DataTable dt, Dictionary <string, Type> pairs, bool isRollack)
        {
            var columns = Common.GetColumnNamesFromDt(dt);

            if (columns.Count <= 0)
            {
                return(new ResultModel {
                    IsHaveReport = false, ErrMsg = "没有数据导入!"
                });
            }
            dt.Columns.Add(new DataColumn("ErrMsg"));
            //复制一个新的表格
            DataTable newDt = new DataTable();

            foreach (var item in columns)
            {
                newDt.Columns.Add(new DataColumn(item));
            }
            newDt.Columns.Add(new DataColumn("ErrMsg"));
            int    num      = 0;
            int    errNum   = 0;
            string fileName = "";

            using (SqlConn)
            {
                using (SqlCommand cmd = SqlConn.CreateCommand())
                {
                    try
                    {
                        SqlConn.Open();
                        //开启一个事务
                        SqlTransaction myTrans = null;
                        if (isRollack)
                        {
                            myTrans         = SqlConn.BeginTransaction();
                            cmd.Transaction = myTrans;
                        }

                        foreach (DataRow dr in dt.Rows)
                        {
                            //构造语句
                            string sqlStr = Common.GetSqlStrByDataRow(dr, columns, pairs, TableName);
                            cmd.CommandText = sqlStr;

                            try
                            {
                                //执行语句
                                num += cmd.ExecuteNonQuery();
                            }
                            catch (Exception ex)
                            {
                                if (isRollack)
                                {
                                    if (myTrans != null)
                                    {
                                        myTrans.Rollback();
                                    }
                                    throw ex;
                                }
                                else
                                {
                                    errNum++;
                                    //不回滚,产生上传报告
                                    dr["ErrMsg"] = ex.Message;
                                    newDt.Rows.Add(dr.ItemArray);
                                }
                            }
                        }
                        //如果选择跳过,并且期间产生异常,产生异常报告
                        if (!isRollack && newDt.Rows.Count > 0)
                        {
                            fileName = ExcelHelper.DataTable2File(newDt); //仅出错的在报告中体现
                            //fileName = ExcelHelper.DataTable2File(dt); //所有数据都在报告中
                        }
                        if (isRollack)
                        {
                            if (myTrans != null)
                            {
                                myTrans.Commit();
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }
            if (errNum > 0)
            {
                return(new ResultModel {
                    IsHaveReport = true, ErrMsg = $"导入成功!成功导入{num}条,失败{errNum}条!详见错误报告:{fileName},立即查看报告?", FileName = fileName
                });
            }
            else
            {
                return(new ResultModel {
                    IsHaveReport = false, ErrMsg = $"导入成功!共计 {num} 条数据被导入!"
                });
            }
        }