Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!>
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?>
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.
>
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](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
Problema resolvido! Página suspensa no projeto :)
db.Matriculas.Add(new Matricula {
CursoId = xxx,
AlunoId = xxx