Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thiagojoseh_

[Resolvido] Inserir no banco de dados os valores descritos em duas dropdownlist << C# ASP.NET Web Forms >>

Recommended Posts

Olá, pessoal

 

Sou novo aqui no fórum e iniciante em C # ASP.NET. Estou com a seguinte situação, efetuei o cadastro de duas Classes "Aluno" e "Curso" através do MVC e, agora, tenho que cadastrar ambos em uma nova classe "Matricula".

 

Matricula.cs

 

 public class Matricula
    {
        [Key]
        public int MatriculaID { get; set; }

        public int AlunoID { get; set; }
        public int CursoID { get; set; }
    }

 

Contexto.cs

 

using System.Data.Entity;

namespace WebFormsMVC.Models
{
    public class Contexto : DbContext
    {

        public DbSet<Aluno> Alunos { get; set; }
        public DbSet<Curso> Cursos { get; set; }
        public DbSet<Matricula> Matriculas { get; set; }

    }
}

 

Preciso realizar este cadastro em Matricula através do WebForms, ou seja, criei duas dropdownlist, uma para exibir Aluno e outra para Curso. Em seguida, um botão para Salvar os dados selecionados em Matricula. OBS.: Estou utilizando LocalDB.

 

No método do botão salvar, eu tentei colocar o seguinte código para salvar:

 

 public partial class Default : System.Web.UI.Page
    {
        private Contexto db = new Contexto();

        protected void Page_Load(object sender, EventArgs e)
        {
            ddlAlunos.DataTextField = "Nome";
            ddlAlunos.DataValueField = "AlunoID";
            ddlAlunos.DataSource = db.Alunos.ToList();
            ddlAlunos.DataBind();

            ddlCursos.DataTextField = "Descricao";
            ddlCursos.DataValueField = "CursoID";
            ddlCursos.DataSource = db.Cursos.ToList();
            ddlCursos.DataBind();

        }

        protected void Button2_Click(object sender, EventArgs e) // Botão Salvar
        {
               db.Matriculas.Add(ddlAlunos.SelectedItem.Value); 

               db.SaveChanges();

        }
    }

 

Em vermelho, o erro que está retornando... "não é possível converter de "string" para "WebFormsMVC.Models.Matricula"". Preciso apenas passar a ID dos valores selecionados na dropdownlist para a tabela Matricula no banco de dados, para depois exibí-los em uma nova tabela com os Alunos já cadastrados nos Cursos.

 

Desde já agradeço.

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
db.Matriculas.Add(new Matricula {
	CursoId = xxx,
	AlunoId = xxx
});

Porque você tem que add uma matrícula na matrícula, e não uma string.

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 minutos atrás, itlpps disse:

db.Matriculas.Add(new Matricula {
	CursoId = xxx,
	AlunoId = xxx
});

Porque você tem que add uma matrícula na matrícula, e não uma string.

Obrigado ITLPPS... no entanto, o que tenho que passar para Curso ID e Aluno ID seriam ddlAlunos.SelectItem.Value. Sendo um para Curso e outro para Aluno?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
12 minutos atrás, thiagojoseh_ disse:

Obrigado ITLPPS... no entanto, o que tenho que passar para Curso ID e Aluno ID seriam ddlAlunos.SelectItem.Value. Sendo um para Curso e outro para Aluno?

 

Pelo que entendi do seu Page_Load, tem um dropdown pra cada, então sim... Só converter pra int.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, itlpps disse:

Pelo que entendi do seu Page_Load, tem um dropdown pra cada, então sim... Só converter pra int.

 

Realizei o que me informou e o código ficou assim:

 

protected void Button2_Click(object sender, EventArgs e)
        {

            db.Matriculas.Add(new Matricula
            {

                AlunoID = Convert.ToInt16(ddlAlunos.SelectedValue),
                CursoID = Convert.ToInt16(ddlCursos.SelectedValue)
                
           });

            db.SaveChanges();
        }

 

A principio, acredito que esteja OK, o compilador não acusou nenhum erro. Porém, estou tentando executar meu arquivo Default.aspx para testar a funcionalidade da página, mas está retornando o erro abaixo. Um detalhe importante, abri um novo projeto apenas para rodar uma Default.aspx que ele gera automaticamente, ainda assim retorna o erro. Qualquer página .aspx criada seja num projeto existente ou novo, o problema é apresentado.

 

Sabe como posso resolver?

 

URL: http://localhost:52684/WebForms/Default

Erro de Servidor no Aplicativo '/'.


Não é possível encontrar o recurso.

Descrição: HTTP 404. O recurso que você está procurando (ou uma de suas dependências) não pôde ser removido, seu nome foi alterado ou está temporariamente indisponível. Examine o URL e certifique-se de que está digitado corretamente.

URL solicitada: /WebForms/Default

 


Informações sobre a Versão: Microsoft .NET Framework Versão:4.0.30319; Versão do ASP.NET:4.7.2106.0

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por biza
      Ola
      Estou  a construir um datalogger em código C.Desta forma necessito passar os dados entre ficheiros. O meu problema está na inclusão de algumas variáveis no topo de um arquivo .txt onde os dados são salvos. Variáveis como tempo de data e hora, id do dispositivo e muito mais... Para isso preciso de ajuda, gostaria que os dados estivessem disponíveis para todos os arquivos, até aí é fácil, basta incluir a variável como extern, no arquivos *.h e incluí-lo em todos os outros que você deseja que a variável esteja disponível. mas como posso fazer para ter acesso a ele dentro do array que preciso?
      Exemplo: main.c
      #include "main.h" char dateTimeFormat[24]; void main(void){ dateTimeFormat = "22-02-22 13:23:04"; } main.h
      extern char dateTimeFormat[24];  
      teste.c
       
      #include "main.h" extern char dateTimeFormat[24]; /*Header .txt file initialization*/ volatile char headerFile[] ="\n\n" "# HEALT MONITORING SYSTEM \r\n" "# DEVELOPED: BIZA \r\n" "# VERSION: B \r\n" "# DATATIMECAPTURE:"+dateTimeFormat+ "\r\n" "# SAMPLINGFREQUENCY: 500 \r\n" "# SAMPLECHANNELS: 1 2 3 4 5 6 7 8 \r\n" "# SAMPLINGRESULUTION: 24 \r\n" "# IDDEVICE: HEALTHY \r\n" "# ENDOFHEADER  
      Como posso incluir a variável "dateTimeFormat" dentro do headerFile como descrevi acima?
       
    • Por Jafreal
      Bom dia a todos
       
      Criei um programa em MVC, que utiliza duas tabelas customizadas. Tipo Pai e Filho. Similar as tabelas SC5 e SC6. Estou usando FWMBrowse, por isso utilizei a relação abaixo no Static Function ModelDef.
       
      Local oModel         := Nil
      Local oStPai         := FWFormStruct(1, 'SZD')
      Local oStFilho         := FWFormStruct(1, 'SZE')
      Local aSZERel        := {}
       
      oModel := MPFormModel():New('zMVCMd3M')
      oModel:AddFields('SZDMASTER',,oStPai)
      oModel:AddGrid('SZEDETAIL','SZDMASTER',oStFilho,,,,,)  
       
      aAdd(aSZERel, {'ZE_FILIAL' ,'ZD_FILIAL' } )
      aAdd(aSZERel, {'ZE_EDITAL' ,'ZD_EDITAL' } ) 
       
      oModel:SetRelation('SZEDETAIL', aSZERel, SZE->(IndexKey(1))) 
      oModel:GetModel('SZEDETAIL'):SetUniqueLine({"ZE_FILIAL","ZE_EDITAL","ZE_CODPROD"})     
      oModel:SetPrimaryKey({})
       
      Return oModel
       
      O problema é que na hora da gravação na tabela filho ele não grava o campo filial(ZE_FILIAL), mas grava o campo edital(ZE_EDITAL). Alguem já passou por isso?
       
    • Por oromotoceu
      #include <stdio.h>
      #include <stdlib.h>
      #define MAXTAM 1000
      int Frente, Tras, Lista[MAXTAM];
      void Lista_Construtor(){
      Frente=0;
      Tras=-1;
      }
      int Lista_Vazia(){
      if(Tras==-1)
      return 1;
      else
      return 0;
      }
      int Lista_Cheia(){
      if(Tras==MAXTAM-1)
      return 1;
      else
      return 0;
      }
      int Lista_Tamanho(){
      return Tras+1;
      }
      int Lista_Inserir_Inicio(int Valor){
      if(Lista_Cheia()){
      return 0;
      }else{
      /*se quero inserir na posição 0,
      vou deslocar todos os elementos para frente*/
      for(int i=Tras+1;i>Frente;i--){
      Lista=Lista[i-1];
      }
      Lista[Frente]=Valor;
      Tras++;
      return 1;
        }
      }
      int Lista_Inserir_Fim(int Valor){
      if(Lista_Cheia()){
      return 0;
      }else{
      Tras++;
      Lista[Tras]=Valor;
      return 1;
        }
      }
      int Lista_Inserir(int Valor, int Posicao){
      if(Lista_Cheia()){
      return 0;
      }else{
      /* Para verificar se a posição
      está no meio da lista */
      if(Posicao>Frente && Posicao<Tras){
      for(int i=Tras+1;i>Posicao;i--){
      Lista=Lista[i-1];
      }
      Lista[Posicao]=Valor;
      Tras++;
      return 1;
      }else{ 
      return 0;
         }
        }
      }
      int Lista_Remover_Inicio(int *Valor){
      if(Lista_Vazia()){
      return 0;
      }else{
      *Valor =Lista[Frente];
      for(int i=Frente;i<Tras;i++){
      Lista=Lista[i+1];
         }
      Tras--;
        }
      }
      int Lista_Remover_Fim(int *Valor){
      if(Lista_Vazia()){
      return 0;
      }else{
      *Valor=Lista[Tras];
      Tras--;
      return 1;
        }
      }
      int Lista_Remover(int *Valor, int Posicao){
      if(Lista_Vazia()){
      return 0;
      }else{
      if(Posicao>Frente && Posicao<Tras){
      *Valor=Lista[Posicao];
      for(int i=Posicao;i<Tras;i++){
      Lista=Lista[i+1];
      }
      Tras--;
      return 1;
         }
        }
      }
      int Lista_Get_toda(int *Valor){
      if(Lista_Vazia()){
      return 0;
      }else{
      *Valor=Lista[Frente];
      return 1;
        }
      }
      int Lista_Get_inicio(int *Valor){
      if(Lista_Vazia()){
      return 0;
      }else{
      *Valor=Lista[Frente];
      return 1;
        }
      }
      int Lista_Get_Fim(int *Valor){
      if(Lista_Vazia()){
      return 0;
      }else{
      *Valor=Lista[Tras];
      return 1;
        }
      }
      int Lista_Busca_Valor(int Valor, int *Posicao){
      int i;
      if(Lista_Vazia()){
      return 0;
      }else{
      for(i=Frente;i<Tras;i++){
      if(Lista==Valor){
      break;
        }
      }
      if(i==Tras){
      return 0;
      }else{
      *Posicao=i; 
      return 1;
         }
        }
      }
      int Lista_Busca_Posicao(int *Valor, int Posicao){
      if(Lista_Vazia()){
      return 0;
      }else{
      if(Posicao>Frente && Posicao<Tras){
      *Valor=Lista[Posicao];
      return 1;
      }else{
      return 0;
         }
        }
      }
      int main(){
      int i,Valor,op=0,pos;
      Lista_Construtor();
      while(op!=12){
      printf("*** Menu de opções ***\n");
      printf("1-Inserir início\n");
      printf("2-Inserir fim\n");
      printf("3-Inserir meio\n");
      printf("4-Excluir início\n");
      printf("5-Excluir fim\n");
      printf("6-Excluir meio\n");
      printf("7-Mostrar toda lista\n");
      printf("8-Mostrar primeiro item da lista\n");
      printf("9-Mostrar último item da lista\n");
      printf("10-Mostrar a posição de um item da lista\n");
      printf("11-Mostrar o valor de uma posição\n");
      printf("12-Sair\n");
      printf("Escolha uma opção: ");
      scanf("%d", &op);
      switch(op){
          case 1:
              printf("Digite o valor a ser inserido: ");
              scanf("%d", &Valor);
              Lista_Inserir_Inicio(Valor);
              break;
          case 2:
              printf("Digite o valor a ser inserido: ");
              scanf("%d", &Valor);
              Lista_Inserir_fim(Valor);
              break;
            case 3:
              printf("Digite o valor a ser inserido: ");
              scanf("%d", &Valor);
              printf("Digite a posição que deseja inserir: ");
              scanf("%d", &pos);
              Lista_ Inserir_meio(int Valor, pos); 
              break;
            case 4:
              printf("Digite a remoção do início: ");
              scanf("%d", &*Valor);
              Lista_ Excluir_inicio(*Valor); 
              break;
              case 5:
              printf("Digite a remoção do fim: ");
              scanf("%d", &*Valor);
              Lista_ Excluir_fim(*Valor); 
              break;
              case 6:
              printf("Digite a remoção do meio: ");
              scanf("%d", &Valor);
              printf("Digite a posição que deseja remover: ");
              scanf("%d", &*Posicao);
              Lista_ Excluir_meio(intValor, * pos); 
              break;
               case 7:
              printf("Digite ao a mostrar toda lista: ");
              scanf("%d", &Valor);
              Lista_ mostrar_toda_lista(Valor);
              break;
             case 8:
              printf("Digite ao a mostrar primeiro item da lista: ");
              scanf("%d", &*Valor);
              Lista_ mostrar_primeiro_item_da_lista(*Valor);
              break;
             case 9:
              printf("Digite ao a mostrar último item da lista: ");
              scanf("%d", &*Valor);
              Lista_ mostrar_ultimo_item_da_lista(*Valor);
              break;
              case 10:
              printf("Digite ao a mostrar a posição de um item da lista: ");
              scanf("%d", &Valor);
              printf("Digite a posição que deseja mostrar na lista: ");
              scanf("%d", &* pos);
              Lista_ mostrar_posicao_de_um_item_da_lista(intValor, *pos);
              break;
              case 11:
              printf("Digite ao a mostrar o valor de uma posição: ");
              scanf("%d", &*Valor
              printf("Digite a posição que deseja mostrar no valor: ");
              scanf("%d", &pos);
              Lista_ mostrar_posicao_de_um_valor_da_lista(int*Valor, pos);
              break;
              case 12:
              default:
              printf("Valor Invalido!\n");
              system("PAUSE");
               }
         }
       return 0;
      }
    • Por oromotoceu
      bom dia pode me ajudar nessa questão por favor
      O programa deverá trabalhar dados de um veículo, onde será armazenado, Nome do proprietário, placa do carro, modelo do carro e preço do carro.
      O programa deve ter as seguintes opções:
      Inserir dados (todos os dados sugeridos no enunciado acima).
      Excluir um Carro específico com a busca pela placa.
      Editar dados de um Carro com a busca pela placa.
      Consultar carro por Placa.
      Exibir todos os dados cadastrados.
      Finalizar programa.
      A opção exibir todos os dados, apresenta tudo que já foi cadastrado e está na memória.
       
    • Por TK_T
      olá sou iniciante consegui fazer um o código de um exercício só que quando eu peço o valor 12ab ele lê como numérica alguém pode me ajudar? 
      Exercício: Leia uma string e diga se a mesma é numérica (na base decimal) ou não.
      Ex.: "123" -> numérica
      "abc" -> não numérica
      "12ab" -> não numérica
      "12.34" -> numérica 
      #include <stdio.h> int main() { char Numero; printf("Digite Algo: "); scanf("%c", &Numero); if(Numero == '1' || Numero == '2' || Numero == '3' || Numero == '4' || Numero == '5' || Numero == '6' || Numero == '7' || Numero == '8' || Numero== '9' || Numero == '0') printf("\tNumérica...\n"); else printf("\tNão Numérica\n"); return 0; }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.