예제 #1
0
        /// <summary>
        /// Retorna um objeto do tipo Questao completo
        /// Contendo list de ALternativa (Completo)
        /// </summary>
        /// <param name="id"> parametro do tipo inteiro representando o ID da Questao </param>
        /// <returns></returns>
        public Questao Consultar(int id)
        {
            SqlCommand    comm = new SqlCommand("Select * from Questao Where ID_Questao = " + id, Banco.Abrir());
            SqlDataReader dr   = comm.ExecuteReader();
            Questao       q    = new Questao();

            while (dr.Read())
            {
                q.ID = Convert.ToInt32(dr.GetValue(0));
                Exercicio e = new Exercicio();
                e.ID                   = Convert.ToInt32(dr.GetValue(1));
                q.Exercicio            = e;
                q.Ordem                = Convert.ToInt32(dr.GetValue(2));
                q.AleatorioAlternativa = Convert.ToBoolean(dr.GetValue(3));
                q.Pergunta             = dr.GetValue(4).ToString();
                q.Tipo                 = dr.GetValue(5).ToString();
                q.Usuario              = Convert.ToInt32(dr.GetValue(6));
            }
            dr.Close();
            comm.CommandText = "Select ID_Alternativa, Ordem_Alternativa from Alternativa Where ID_Questao = " + id + " order by Ordem_Alternativa";
            dr = comm.ExecuteReader();
            List <Alternativa> lista = new List <Alternativa>();

            while (dr.Read())
            {
                AlternativaDAL dalalter = new AlternativaDAL();
                Alternativa    a        = new Alternativa();
                a = dalalter.Consultar(Convert.ToInt32(dr.GetValue(0)));
                lista.Add(a);
            }
            q.Alternativa = lista;
            dr.Close();
            comm.CommandText = @"Select ID_Imagem, Ordem_ImagemQuestao from ImagemQuestao Where ID_Questao = " + id + " order by Ordem_ImagemQuestao";
            dr = comm.ExecuteReader();
            List <Imagem> listaIMG = new List <Imagem>();

            while (dr.Read())
            {
                ImagemDAL dalimg = new ImagemDAL();
                Imagem    i      = new Imagem();
                i = dalimg.Consultar(Convert.ToInt32(dr.GetValue(0)));
                listaIMG.Add(i);
            }
            q.Imagem = listaIMG;
            comm.Connection.Close();
            return(q);
        }
예제 #2
0
        /// <summary>
        /// Altera um Exercicio no Banco de daodos
        /// Precisando apenas do ID do Conteudo
        /// </summary>
        /// <param name="E"> Parametro do tipo exercicio | com id </param>
        public void Alterar(Exercicio E)
        {
            SqlCommand    comm = new SqlCommand("Select * From Questao Where ID_Exercicio = " + E.ID, Banco.Abrir());
            SqlDataReader dr   = comm.ExecuteReader();

            while (dr.Read())
            {
                SqlCommand comm2 = new SqlCommand("Delete Alternativa Where ID_Questao = " + dr.GetValue(0).ToString(), Banco.Abrir());
                comm2.ExecuteNonQuery();
                try
                {
                    comm2.CommandText = "Delete ImagemQuestao Where ID_Questao = " + dr.GetValue(0).ToString();
                    comm2.ExecuteNonQuery();
                }
                catch { }
                comm2.Connection.Close();
            }
            dr.Close();
            comm.CommandText = "Delete Questao Where ID_Exercicio = " + E.ID;
            comm.ExecuteNonQuery();
            foreach (var item in E.Questao)
            {
                QuestaoDAL dal = new QuestaoDAL();
                item.ID = dal.Criar(item);
                foreach (var i in item.Alternativa)
                {
                    i.Questao = item;
                    AlternativaDAL dalalt = new AlternativaDAL();
                    dalalt.Criar(i);
                }
            }
            comm.CommandType = System.Data.CommandType.StoredProcedure;
            comm.CommandText = "AlterarExercicio";
            comm.Parameters.Add("@ID", SqlDbType.Int).Value               = E.ID;
            comm.Parameters.Add("@Conteudo", SqlDbType.Int).Value         = E.Conteudo.ID;
            comm.Parameters.Add("@Descricao", SqlDbType.VarChar).Value    = E.Descricao;
            comm.Parameters.Add("@Tipo", SqlDbType.Char).Value            = E.Tipo;
            comm.Parameters.Add("@AleatorioQuestao", SqlDbType.Bit).Value = E.AleatorioQuestao;
            comm.Parameters.Add("@Usuario", SqlDbType.Int).Value          = E.Usuario;
            comm.ExecuteNonQuery();
            comm.Connection.Close();
        }