Fórum Erro de referência #1622

04/01/2009

0

Olá Carlos Junior,            Com relação a sua aplicação em camadas, rodei ela mesma e funcionou.

Agora fui fazendo do zero pra ver se passava normal.  Acho que está com algumas diferenças devido a eu usar o vs2008 e ele ter sido feito no 2005.   Estava com o erro no ConfigurationManager, mas adicionei a referencia e resolveu. Os outros itens foram também de referencias e passaram. Agora ficou só um que não consegui achar a solução.



Em AddMovie está dando o seguinte erro:

Error 1 The type or namespace name saveMovie does not exist in the namespace Movie (are you missing an assembly reference?) D:\SolutionMovie\Movie\AddMovie.aspx.cs 71 30 Movie

Mensagem de Erro do Compilador: CS0234: Nome do espaço para nome ou tipo saveMovie não existe no espaço para nome Movie. Precisa de uma referência de módulo (assembly)?

Nesse trecho
Linha 69: movie.Summary = txtSummary.Text; Linha 70: Linha 71: structReturn = Movie.saveMovie(movie); Linha 72: Linha 73: lblError.Visible = true;

Na verdade ele não está conseguindo enxergar o Movie.saveMovie(movie) criado na camada framework. Eu já fiz as referencias que sabia mas não deu.   O código está igual ao seu mesmo, fui criando as telas, copiando o código inteiro e salvando.       
O VS2008 tem algumas diferenças pra funcionar? Quando eu abri o seu projeto ele fez tipo uma conversão, não entendi direito.
agradeço desde já a ajuda que já fundi a cuca.   até+, Robson    
Robson Ramos

Robson Ramos

Responder

Posts

05/01/2009

Luiz Maia

Robson,   Confira os namespaces de suas paginas .cs. Não tem necessidade de adicionar outras referências não. Confira com o projeto original, pois só pode ser os namespaces que vc deve ter criado errados.   Aguardo seu retorno. Att Luiz Maia  
Responder

Gostei + 0

06/01/2009

Luiz Maia

Olá Robson,   Conseguiu resolver o problema dos namespaces? Aguardo seu retorno por favor.   Att Luiz Maia  
Responder

Gostei + 0

07/01/2009

Luiz Maia

Ola Robson,   Como não obtivemos resposta quanto ao seu chamado, estamos concluindo o mesmo. Continuamos a sua disposição para eventuais dúvidas. Abraços Att Luiz Maia
Responder

Gostei + 0

09/01/2009

Robson Ramos

Olá Luiz Maia,   Estava sem tempo devido a algumas urgências, mas  fiz outras tentativas ontem, só que ainda não consegui resolver. Já adicionei até outras referencias, mas não está indo. Fiz assim pra garantir melhor:
Em entitity somei as referencias de Framework, movie e persistence, Em Framework somei as referencias de Entity, movie e persistence, ..  Fiz as combinações possíveis.     Estou colocando o código da Framework e da addmovie     Aproveito para perguntar se existe algum outro exemplo que tenha essas características:   CAMADAS C# STORED PROCEDURES, TRY CATCH UI COM PÁGINA WEB CRIADO NO VISUAL STUDIO 2008   Já procurei na internet e não achei em lugar nenhum, Se tiver um link ou algum exemplo agradeço que ai faço a comparação     agradeço desde já,       CÓDIGO MOVIE.CS em FRAMEWORK using System; using System.Collections.Generic; using System.Text; using Entity;   namespace Framework { public class Movie { static Structs.StructFill objStructFill; static Structs.StructReturn objStructReturn; static Persistence.DBAccess dbAccess = new Persistence.DBAccess(); #region saveMovie public static Structs.StructReturn saveMovie(MovieEntity movieEntity) { if (movieEntity.Id != 0) { return updateMovie(movieEntity); } else { return inserMovie(movieEntity); } } #endregion saveMovie #region inserMovie public static Structs.StructReturn inserMovie(MovieEntity movieEntity) { try { objStructReturn = new Framework.Structs.StructReturn(); dbAccess.CommandText = "SP_INSERT_MOVIE"; dbAccess.AddParameter("@ID_GENRE", movieEntity.IdGenre); dbAccess.AddParameter("@NAME", movieEntity.Name); dbAccess.AddParameter("@RELEASE", movieEntity.Release); dbAccess.AddParameter("@SUMMARY", movieEntity.Summary); dbAccess.ExecuteNonQuery(); objStructReturn.Success = true; } catch (Exception erro) { objStructReturn.Success = false; objStructReturn.MessageReturn = erro.Message; } return objStructReturn; } #endregion inserMovie #region updateMovie public static Structs.StructReturn updateMovie(MovieEntity movieEntity) { try { objStructReturn = new Framework.Structs.StructReturn(); dbAccess.CommandText = "SP_UPDATE_MOVIE"; dbAccess.AddParameter("@ID", movieEntity.Id); dbAccess.AddParameter("@ID_GENRE", movieEntity.IdGenre); dbAccess.AddParameter("@NAME", movieEntity.Name); dbAccess.AddParameter("@SUMMARY", movieEntity.Summary); dbAccess.ExecuteNonQuery(); objStructReturn.Success = true; } catch (Exception erro) { objStructReturn.Success = false; objStructReturn.MessageReturn = erro.Message; } return objStructReturn; } #endregion updateMovie #region selectMovies public static Structs.StructFill selectMovies(MovieEntity movieEntity) { try { objStructFill = new Framework.Structs.StructFill(); dbAccess.CommandText = "SP_SELECT_MOVIES"; dbAccess.AddParameter("@ID", movieEntity.Id); dbAccess.AddParameter("@ID_GENRE", movieEntity.IdGenre); dbAccess.AddParameter("@NAME", movieEntity.Name); dbAccess.AddParameter("@SUMMARY", movieEntity.Summary); objStructFill.DataSetReturn = dbAccess.ExecuteDataSet(); objStructFill.Success = true; } catch (Exception erro) { objStructFill.Success = false; objStructFill.MessageReturn = erro.Message; } return objStructFill; } #endregion selectMovies #region deleteMovie /// <summary> /// Method to delete a movie in database /// </summary> /// <param name="idMovie"></param> public static Structs.StructReturn deleteMovie(int idMovie) { try { objStructReturn = new Framework.Structs.StructReturn(); objStructReturn = new Framework.Structs.StructReturn(); //Set a procedure to select movies dbAccess.CommandText = "SP_DELETE_MOVIE"; //Adding parameters to delete movie in database dbAccess.AddParameter("@ID", idMovie); //Execute procedure dbAccess.ExecuteNonQuery(); objStructReturn.Success = true; } catch (Exception error) { objStructReturn.Success = false; objStructReturn.MessageReturn = error.Message; } return objStructReturn; } #endregion deleteMovie } }       CÓDIGO ADDMOVIE.CS using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using Framework.Structs; using Framework;                               <----- TEORICAMENTE RESOLVERIA ??? using Entity;   public partial class AddMovie : System.Web.UI.Page { MovieEntity movie; GenreEntity genre; StructFill structFill; StructReturn structReturn; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { databindGenres(); fillGridMovies(); } } public void databindGenres() { genre = new GenreEntity(); structFill = new StructFill(); structFill = Genre.selectGenre(genre); if (structFill.Success) { ddlGenre.DataSource = structFill.DataSetReturn.Tables[0]; ddlGenre.DataTextField = "NAME"; ddlGenre.DataValueField = "ID"; ddlGenre.DataBind(); ddlGenre.Items.Insert(0, new ListItem("Select", "")); } else { lblError.Text = structFill.MessageReturn; } structFill = null; } protected void btnSave_Click(object sender, EventArgs e) { structReturn = new StructReturn(); movie = new MovieEntity(); if (hdnMovie.Value != "0") { movie.Id = int.Parse(hdnMovie.Value); } movie.IdGenre = int.Parse(ddlGenre.SelectedValue); movie.Name = txtName.Text; movie.Release = DateTime.Parse(txtRelease.Text); movie.Summary = txtSummary.Text; structReturn = Movie.saveMovie(movie); lblError.Visible = true; if (structReturn.Success) { lblError.Text = "Movie Added With Sucess."; fillGridMovies(); } else { lblError.Text = structReturn.MessageReturn; } structReturn = null; movie = null; } public void fillGridMovies() { structFill = new StructFill(); movie = new MovieEntity(); structFill = Movie.selectMovies(movie); gridMovies.DataSource = structFill.DataSetReturn; gridMovies.DataBind(); } protected void gridMovies_RowCommand(object sender, GridViewCommandEventArgs e) { int idMovie = int.Parse(gridMovies.DataKeys[int.Parse(e.CommandArgument.ToString())][0].ToString()); int idGenre = int.Parse(gridMovies.DataKeys[int.Parse(e.CommandArgument.ToString())][1].ToString()); //Set up value in hidden to control class hdnMovie.Value = idMovie.ToString(); if (e.CommandName == "Edit") { ddlGenre.SelectedValue = idGenre.ToString(); txtName.Text = gridMovies.Rows[int.Parse(e.CommandArgument.ToString())].Cells[2].Text; txtRelease.Text = gridMovies.Rows[int.Parse(e.CommandArgument.ToString())].Cells[3].Text; txtSummary.Text = gridMovies.Rows[int.Parse(e.CommandArgument.ToString())].Cells[4].Text; } else if (e.CommandName == "Delete") { structReturn = new StructReturn(); structReturn = Movie.deleteMovie(idMovie); lblError.Visible = true; if (structReturn.Success) { lblError.Text = "Movie Deleted Success."; fillGridMovies(); } else { lblError.Text = structReturn.MessageReturn; } } } protected void gridMovies_RowEditing(object sender, GridViewEditEventArgs e) { } protected void gridMovies_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { ImageButton btnDelete = (ImageButton)e.Row.Cells[5].Controls[0]; btnDelete.OnClientClick = "if (confirm(Delete this register ?) == false) return false;"; } } protected void gridMovies_RowDeleting(object sender, GridViewDeleteEventArgs e) { } }
Responder

Gostei + 0

09/01/2009

Luiz Maia

Robson,   Aconselho você a refazer as referências das camadas de entidade e framework, e tenda chamar o namespace completo tipo Framework.Movie.saveMovie(movie);   Segue um exemplo de um projeto bastante simples que retorna estados, usando procedures e etc...     CLASSE FRAMEWORK:   using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataAcessLayerComponent;
using Entity = Data.Entities; namespace BusinessLogicLayerComponent
{
    public class Estado
    {
        public static void salvar(string siglaEstado, string nomeEstado, string pais)
        {
            Entity.Estado dbEstado = new Entity.Estado();             //Se caso for passado alguma sigla, será atualizada o ESTADO
            dbEstado.Sigla = siglaEstado;
            dbEstado.Nome = nomeEstado;
            dbEstado.IdPais = pais;             DataAcessLayerComponent.Estado.Salvar(dbEstado);
        }         public static List<Entity.Estado> pesquisar(string siglaEstado, string nomeEstado, string pais)
        {
            return DataAcessLayerComponent.Estado.Pesquisar(siglaEstado, nomeEstado, pais);
        }         public static void excluir(string siglaESTADO)
        {
            DataAcessLayerComponent.Estado.Excluir(siglaESTADO);
        }         public static string RetornaCodEstadoPorMunicipio(int codMunicipio)
        {
            return DataAcessLayerComponent.Estado.RetornaCodEstadoPorMunicipio(codMunicipio);
        }
    }
}
CAMADA DE PERSISTENCIA: using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entity = Data.Entities; namespace DataAcessLayerComponent
{
    public class Estado
    {
        /// <summary>
        /// Este método pode fazer alteração ou criação de um novo estado
        /// </summary>
        /// <param name="dbEstado"></param>
        public static void Salvar(Entity.Estado dbEstado)
        {
            Entity.DataClassesDataContext dataClass = new Entity.DataClassesDataContext();             //Verifica se é para atualização da organização ou nova estado
            if (dbEstado.Sigla != "")
            {
                Excluir(dbEstado.Sigla);                 dataClass.Estados.InsertOnSubmit(dbEstado);
                dataClass.SubmitChanges();
            }
        }         public static void Excluir(string siglaEstado)
        {
            Entity.DataClassesDataContext dataClass = new Entity.DataClassesDataContext();             var estado = dataClass.Estados.SingleOrDefault(est => est.Sigla == siglaEstado);             if (estado != null)
            {
                dataClass.Estados.DeleteOnSubmit(estado);
                dataClass.SubmitChanges();
            }
        }         public static List<Entity.Estado> Pesquisar(string siglaEstado, string nomeEstado, string pais)
        {
            Entity.DataClassesDataContext dataClass = new Entity.DataClassesDataContext();             var est = dataClass.SP_PESQUISAR_ESTADO(siglaEstado, nomeEstado, pais);
            List<Entity.Estado> estado = est.ToList();             return estado;
        }         public static string RetornaCodEstadoPorMunicipio(int codMunicipio)
        {
            Entity.DataClassesDataContext dataClass = new Entity.DataClassesDataContext();             var obj = from m in dataClass.Municipios
                      where m.MUN_SEQ.Equals(codMunicipio)
                      select new { m.EST_DSC_SIGLA };             return obj.FirstOrDefault().EST_DSC_SIGLA.ToString();
        }
    }
}
CHAMADA NO .CS DO WEBFORM: using Entity = Data.Entities;     public void pesquisar(string siglaEstado)
    {
        Entity.Estado data = new Entity.Estado();         data = BusinessLogicLayerComponent.Estado.pesquisar(siglaEstado, "", "").First();         txtSiglaEstado.Text = data.Sigla.ToString();
        txtEstado.Text = data.Nome;
        ddlPais.SelectedValue = data.IdPais;         txtSiglaEstado.Enabled = false;        
    }     E falta criar sua classe de entidades ESTADO no arquivo dbml e suas procedures.   Aguardo seu retorno Robson. Abraços Luiz Maia
Responder

Gostei + 0

09/01/2009

Luiz Maia

E ai Robson, conseguiu com as dicas? Aguardo seu retorno. Abraços Luiz Maia 
Responder

Gostei + 0

12/01/2009

Luiz Maia

Ola Robson,   Como não obtvemos seu retorno, estamos fechando o chamado. Continuamos a sua disposição para qualquer dúvida.   Abraços Luiz Maia
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar