Fazer uma PerguntaFazer uma Pergunta
 

RespondidoErro enviando arquivo no FormView

  • terça-feira, 3 de novembro de 2009 18:39Paulo Medeiros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    Esta ocorrendo o seguinte erro na minha pagina:

    Erro de Servidor no Aplicativo '/HomeIsotec'.

    Referência de objeto não definida para uma instância de um objeto.

    Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

    Detalhes da Exceção: System.NullReferenceException: Referência de objeto não definida para uma instância de um objeto.

    Erro de Origem:

    Linha 63: 
    Linha 64: //
    Linha 65: DropDownListANO.Text = "2009";
    Linha 66:
    Linha 67:

    Arquivo de Origem: c:\HomeIsotec\Administracao\AD_ResultadoGDetalhe.aspx.cs    Linha: 65

    Rastreamento de Pilha:

    [NullReferenceException: Referência de objeto não definida para uma instância de um objeto.]
    Administracao_AD_ResultadoGDetalhe.FormView1_DataBound(Object sender, EventArgs e) in c:\HomeIsotec\Administracao\AD_ResultadoGDetalhe.aspx.cs:65
    System.Web.UI.WebControls.BaseDataBoundControl.OnDataBound(EventArgs e) +97
    System.Web.UI.WebControls.FormView.EnsureDataBound() +157
    System.Web.UI.WebControls.BaseDataBoundControl.OnPreRender(EventArgs e) +22
    System.Web.UI.Control.PreRenderRecursiveInternal() +80
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Control.PreRenderRecursiveInternal() +171
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842

    Minha linha de codigo abaixo:
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.IO;
    using System.Data.SqlClient;
    using System.Web.Configuration;

    public partial class Administracao_AD_ResultadoGDetalhe : System.Web.UI.Page
    {

        protected void FormView1_DataBound(object sender, EventArgs e)
        {
            MembershipUser user = Membership.GetUser();
            TextBox UserNameTextBox = (TextBox)FormView1.FindControl("UserNameTextBox");
            TextBox DateTextBox = (TextBox)FormView1.FindControl("DateTextBox");
            DropDownList DropDownListANO = (DropDownList)FormView1.FindControl("DropDownListANO");

            if (User.Identity.IsAuthenticated == true)
            {
                UserNameTextBox.Text = user.UserName;
                UserNameTextBox2.Text = user.UserName;
            }
            DateTextBox.Text = DateTime.Now.ToString();

            SqlDataSource1.DataBind();
            GridView1.DataBind();

            //
            DropDownListANO.Text = "2009";
           

            //Verifica controle de acesso
            string _connectionString = WebConfigurationManager.ConnectionStrings["CONNECTIONSTRING"].ConnectionString;
            string _strSQL = "SELECT * FROM AD_CONTROLEA WHERE USUARIO = @Usuario ORDER BY DETALHE_D_CC DESC";
            SqlConnection con = new SqlConnection(_connectionString);
            SqlCommand cmd = new SqlCommand(_strSQL, con);
            cmd.Parameters.AddWithValue("@Usuario", UserNameTextBox.Text);
            cmd.CommandType = CommandType.Text;
            using (con)
            {
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    //Se existe na tabela habilita FormView e GridView
                    FormView1.Enabled = true;
                    GridView1.Enabled = true;
                   
                    //Upload FormView
                    string _DetalheUpload = (string)dr["DETALHE_UPLOAD"];
                    if (_DetalheUpload == "Sim")
                    {
                        FormView1.Enabled = true;
                        GridView1.Columns[6].Visible = true;
                    }
                    else
                    {
                        FormView1.Enabled = false;
                        GridView1.Columns[6].Visible = false;
                    }

                    //Download GridView
                    string _DetalheDownload = (string)dr["DETALHE_D_CC"];
                    if (_DetalheDownload == "Todos")
                    {
                        GridView1.DataSourceID = "SqlDataSourceTodos";
                    }
                    else
                    {
                        GridView1.DataSourceID = "SqlDataSource1";
                    }
                }
                else
                {
                    //Se não existe na tabela desabilita FormView e GridView
                    FormView1.Enabled = false;
                    GridView1.Enabled = false;
                    GridView1.DataSourceID = "SqlDataSource1";
                }
            }
        }


        protected void FormView1_ItemInserting(Object sender, FormViewInsertEventArgs e)
        {
            Label lbResultado = (Label)FormView1.FindControl("lbResultado");
            FileUpload FileUpload1 = (FileUpload)FormView1.FindControl("FileUpload1");
            TextBox LINK_RG = (TextBox)FormView1.FindControl("LINK_RG");
           

            if (FileUpload1.PostedFile.ContentLength > 0)
            {
                try
                {
                    string destino = MapPath("~/Administracao/Upload/RelatorioG/");
                    string fn = Path.GetFileName(FileUpload1.PostedFile.FileName);
                    FileUpload1.PostedFile.SaveAs(destino + fn);
                    lbResultado.Text = "Arquivo enviado com sucesso!";
                    e.Values["LINK_RG"] = "~/Administracao/Upload/RelatorioG/" + fn.ToString();
                    //---
                   
                }
                catch (Exception ex)
                {
                    lbResultado.Text = ex.Message;
                }
            }

        }
    }

Respostas

  • terça-feira, 3 de novembro de 2009 18:58Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido
    Faça assim
     if (formview.CurrentMode == FormViewMode.Insert)
            {
                     COLOQUE SEU CÓDIGO AQUI
     
            }
  • quarta-feira, 4 de novembro de 2009 15:25Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido
    Coloquei minha variável pq vc coloca o nome que quiser para salvar na viewState.

    Faça assim



    1-Em cima do pageLoad coloque essa propriedade
    public string Varano
        {
            get
            {
                if (ViewState["Varano"] == null)
                    return "";
                else
                    return ViewState["Varano"].ToString();
            }

            set
            {
                ViewState.Add("Varano", value);
            }
        }


    2-Deixe o databound for formview assim

    if (FormView1.CurrentMode == FormViewMode.Insert)
            {
             
            MembershipUser user = Membership.GetUser();
            TextBox UserNameTextBox = (TextBox)FormView1.FindControl("UserNameTextBox");
            TextBox DateTextBox = (TextBox)FormView1.FindControl("DateTextBox");
            DropDownList DropDownListANO = (DropDownList)FormView1.FindControl("DropDownListANO");

            if (User.Identity.IsAuthenticated == true)
            {
                UserNameTextBox.Text = user.UserName;
                UserNameTextBox2.Text = user.UserName;
            }
            DateTextBox.Text = DateTime.Now.ToString();

            SqlDataSource1.DataBind();
            GridView1.DataBind();

            //----
             DropDownListANO.Text = Varano;
            
          


            //Verifica controle de acesso
            string _connectionString = WebConfigurationManager.ConnectionStrings["CONNECTIONSTRING"].ConnectionString;
            string _strSQL = "SELECT * FROM AD_CONTROLEA WHERE USUARIO = @Usuario ORDER BY DETALHE_D_CC DESC";
            SqlConnection con = new SqlConnection(_connectionString);
            SqlCommand cmd = new SqlCommand(_strSQL, con);
            cmd.Parameters.AddWithValue("@Usuario", UserNameTextBox.Text);
            cmd.CommandType = CommandType.Text;
            using (con)
            {
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    //Se existe na tabela habilita FormView e GridView
                    FormView1.Enabled = true;
                    GridView1.Enabled = true;

                    //Upload FormView
                    string _DetalheUpload = (string)dr["DETALHE_UPLOAD"];
                    if (_DetalheUpload == "Sim")
                    {
                        FormView1.Enabled = true;
                        GridView1.Columns[6].Visible = true;
                    }
                    else
                    {
                        FormView1.Enabled = false;
                        GridView1.Columns[6].Visible = false;
                    }

                    //Download GridView
                    string _DetalheDownload = (string)dr["DETALHE_D_CC"];
                    if (_DetalheDownload == "Todos")
                    {
                        GridView1.DataSourceID = "SqlDataSourceTodos";
                    }
                    else
                    {
                        GridView1.DataSourceID = "SqlDataSource1";
                    }
                }
                else
                {
                    //Se não existe na tabela desabilita FormView e GridView
                    FormView1.Enabled = false;
                    GridView1.Enabled = false;
                    GridView1.DataSourceID = "SqlDataSource1";
                }
            }
         }


    3- No Inserting deixe assim

       protected void FormView1_ItemInserting(Object sender, FormViewInsertEventArgs e)
        {
            Label lbResultado = (Label)FormView1.FindControl("lbResultado");
            FileUpload FileUpload1 = (FileUpload)FormView1.FindControl("FileUpload1");
            TextBox LINK_RG = (TextBox)FormView1.FindControl("LINK_RG");
            DropDownList DropDownListANO = (DropDownList)FormView1.FindControl("DropDownListANO");

           Varano = DropDownListANO.Text;

            if (FileUpload1.PostedFile.ContentLength > 0)
            {
                try
                {
                    string destino = MapPath("~/Web/Administracao/Upload/RelatorioG/");
                    string fn = Path.GetFileName(FileUpload1.PostedFile.FileName);
                    FileUpload1.PostedFile.SaveAs(destino + fn);
                    lbResultado.Text = "Arquivo enviado com sucesso!";
                    e.Values["LINK_RG"] = "~/Web/Administracao/Upload/RelatorioG/" + fn.ToString();
                    //---
                   
                }
                catch (Exception ex)
                {
                    lbResultado.Text = ex.Message;
                }
            }

        }
    }

Todas as Respostas

  • terça-feira, 3 de novembro de 2009 18:58Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido
    Faça assim
     if (formview.CurrentMode == FormViewMode.Insert)
            {
                     COLOQUE SEU CÓDIGO AQUI
     
            }
  • quarta-feira, 4 de novembro de 2009 10:35Paulo Medeiros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    OK ate ai deu certo, eu so preciso agora criar uma variavel VARANO a qual vai receber o valor do ano informado no DropDownListANO.Text no Evento
    protected void FormView1_ItemInserting(Object sender, FormViewInsertEventArgs e)
    e depois eu vou recuperar essa variavel no evento protected void FormView1_DataBound(object sender, EventArgs e)
    ficando dessa forma:
    if (FormView1.CurrentMode == FormViewMode.Insert)
               {
                DropDownListANO.Text = VARANO;
               }

    Assim eu consigo sempre manter o ultimo ano inserido.
    Como faço isso ?
  • quarta-feira, 4 de novembro de 2009 11:31Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Faz assim para vc não perder vc pode salvar na viewstate o valor.
  • quarta-feira, 4 de novembro de 2009 12:29Paulo Medeiros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Estou começando agora na area, como eu salvo na viewstate o valor ?
  • quarta-feira, 4 de novembro de 2009 12:41Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Segue ae.

    //para salvar
            ViewState.Add("MinhaVariavel", varano);

            //para recuperar
            string varano = ViewState["MinhaVariavel"].ToString();


    vc pode fazer um propriedade para fazer isso que fica mais bonito o codigo

    public string Varano
        {
            get
            {
                if (ViewState["Varano"] == null)
                    return "";
                else
                    return ViewState["Varano"].ToString();
            }

            set
            {
                ViewState.Add("Varano", value);
            }
        }
  • quarta-feira, 4 de novembro de 2009 15:14Paulo Medeiros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Não entendi pq vc colocou "MInhaVariavel" sendo que a minha variavel é VARANO.

    Vou tentar explicar de acordo com o codigo abaixo:

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.IO;
    using System.Data.SqlClient;
    using System.Web.Configuration;

    public partial class Administracao_AD_ResultadoGDetalhe : System.Web.UI.Page
    {



        protected void FormView1_DataBound(object sender, EventArgs e)
        {
            MembershipUser user = Membership.GetUser();
            TextBox UserNameTextBox = (TextBox)FormView1.FindControl("UserNameTextBox");
            TextBox DateTextBox = (TextBox)FormView1.FindControl("DateTextBox");
            DropDownList DropDownListANO = (DropDownList)FormView1.FindControl("DropDownListANO");

            if (User.Identity.IsAuthenticated == true)
            {
                UserNameTextBox.Text = user.UserName;
                UserNameTextBox2.Text = user.UserName;
            }
            DateTextBox.Text = DateTime.Now.ToString();

            SqlDataSource1.DataBind();
            GridView1.DataBind();

            //----
            if (FormView1.CurrentMode == FormViewMode.Insert)
               {
                DropDownListANO.Text = "2009";
               }
           

            //Verifica controle de acesso
            string _connectionString = WebConfigurationManager.ConnectionStrings["CONNECTIONSTRING"].ConnectionString;
            string _strSQL = "SELECT * FROM AD_CONTROLEA WHERE USUARIO = @Usuario ORDER BY DETALHE_D_CC DESC";
            SqlConnection con = new SqlConnection(_connectionString);
            SqlCommand cmd = new SqlCommand(_strSQL, con);
            cmd.Parameters.AddWithValue("@Usuario", UserNameTextBox.Text);
            cmd.CommandType = CommandType.Text;
            using (con)
            {
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    //Se existe na tabela habilita FormView e GridView
                    FormView1.Enabled = true;
                    GridView1.Enabled = true;
                   
                    //Upload FormView
                    string _DetalheUpload = (string)dr["DETALHE_UPLOAD"];
                    if (_DetalheUpload == "Sim")
                    {
                        FormView1.Enabled = true;
                        GridView1.Columns[6].Visible = true;
                    }
                    else
                    {
                        FormView1.Enabled = false;
                        GridView1.Columns[6].Visible = false;
                    }

                    //Download GridView
                    string _DetalheDownload = (string)dr["DETALHE_D_CC"];
                    if (_DetalheDownload == "Todos")
                    {
                        GridView1.DataSourceID = "SqlDataSourceTodos";
                    }
                    else
                    {
                        GridView1.DataSourceID = "SqlDataSource1";
                    }
                }
                else
                {
                    //Se não existe na tabela desabilita FormView e GridView
                    FormView1.Enabled = false;
                    GridView1.Enabled = false;
                    GridView1.DataSourceID = "SqlDataSource1";
                }
            }
        }


        protected void FormView1_ItemInserting(Object sender, FormViewInsertEventArgs e)
        {
            Label lbResultado = (Label)FormView1.FindControl("lbResultado");
            FileUpload FileUpload1 = (FileUpload)FormView1.FindControl("FileUpload1");
            TextBox LINK_RG = (TextBox)FormView1.FindControl("LINK_RG");
           

            if (FileUpload1.PostedFile.ContentLength > 0)
            {
                try
                {
                    string destino = MapPath("~/Web/Administracao/Upload/RelatorioG/");
                    string fn = Path.GetFileName(FileUpload1.PostedFile.FileName);
                    FileUpload1.PostedFile.SaveAs(destino + fn);
                    lbResultado.Text = "Arquivo enviado com sucesso!";
                    e.Values["LINK_RG"] = "~/Web/Administracao/Upload/RelatorioG/" + fn.ToString();
                    //---
                   
                }
                catch (Exception ex)
                {
                    lbResultado.Text = ex.Message;
                }
            }

        }
    }

    Toda vez que o usuario executar o protected void FormView1_DataBound(object sender, EventArgs e)
    A variavel VARANO vai receber os dados do DropDownListANO.Text quando disparar o evento protected void FormView1_ItemInserting
    e depois vai recuperar esses dados:
    DropDownListANO.Text = VARANO nessa caso no evento protected void FormView1_DataBound

    Fico no aguardo obrigado.
  • quarta-feira, 4 de novembro de 2009 15:25Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido
    Coloquei minha variável pq vc coloca o nome que quiser para salvar na viewState.

    Faça assim



    1-Em cima do pageLoad coloque essa propriedade
    public string Varano
        {
            get
            {
                if (ViewState["Varano"] == null)
                    return "";
                else
                    return ViewState["Varano"].ToString();
            }

            set
            {
                ViewState.Add("Varano", value);
            }
        }


    2-Deixe o databound for formview assim

    if (FormView1.CurrentMode == FormViewMode.Insert)
            {
             
            MembershipUser user = Membership.GetUser();
            TextBox UserNameTextBox = (TextBox)FormView1.FindControl("UserNameTextBox");
            TextBox DateTextBox = (TextBox)FormView1.FindControl("DateTextBox");
            DropDownList DropDownListANO = (DropDownList)FormView1.FindControl("DropDownListANO");

            if (User.Identity.IsAuthenticated == true)
            {
                UserNameTextBox.Text = user.UserName;
                UserNameTextBox2.Text = user.UserName;
            }
            DateTextBox.Text = DateTime.Now.ToString();

            SqlDataSource1.DataBind();
            GridView1.DataBind();

            //----
             DropDownListANO.Text = Varano;
            
          


            //Verifica controle de acesso
            string _connectionString = WebConfigurationManager.ConnectionStrings["CONNECTIONSTRING"].ConnectionString;
            string _strSQL = "SELECT * FROM AD_CONTROLEA WHERE USUARIO = @Usuario ORDER BY DETALHE_D_CC DESC";
            SqlConnection con = new SqlConnection(_connectionString);
            SqlCommand cmd = new SqlCommand(_strSQL, con);
            cmd.Parameters.AddWithValue("@Usuario", UserNameTextBox.Text);
            cmd.CommandType = CommandType.Text;
            using (con)
            {
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    //Se existe na tabela habilita FormView e GridView
                    FormView1.Enabled = true;
                    GridView1.Enabled = true;

                    //Upload FormView
                    string _DetalheUpload = (string)dr["DETALHE_UPLOAD"];
                    if (_DetalheUpload == "Sim")
                    {
                        FormView1.Enabled = true;
                        GridView1.Columns[6].Visible = true;
                    }
                    else
                    {
                        FormView1.Enabled = false;
                        GridView1.Columns[6].Visible = false;
                    }

                    //Download GridView
                    string _DetalheDownload = (string)dr["DETALHE_D_CC"];
                    if (_DetalheDownload == "Todos")
                    {
                        GridView1.DataSourceID = "SqlDataSourceTodos";
                    }
                    else
                    {
                        GridView1.DataSourceID = "SqlDataSource1";
                    }
                }
                else
                {
                    //Se não existe na tabela desabilita FormView e GridView
                    FormView1.Enabled = false;
                    GridView1.Enabled = false;
                    GridView1.DataSourceID = "SqlDataSource1";
                }
            }
         }


    3- No Inserting deixe assim

       protected void FormView1_ItemInserting(Object sender, FormViewInsertEventArgs e)
        {
            Label lbResultado = (Label)FormView1.FindControl("lbResultado");
            FileUpload FileUpload1 = (FileUpload)FormView1.FindControl("FileUpload1");
            TextBox LINK_RG = (TextBox)FormView1.FindControl("LINK_RG");
            DropDownList DropDownListANO = (DropDownList)FormView1.FindControl("DropDownListANO");

           Varano = DropDownListANO.Text;

            if (FileUpload1.PostedFile.ContentLength > 0)
            {
                try
                {
                    string destino = MapPath("~/Web/Administracao/Upload/RelatorioG/");
                    string fn = Path.GetFileName(FileUpload1.PostedFile.FileName);
                    FileUpload1.PostedFile.SaveAs(destino + fn);
                    lbResultado.Text = "Arquivo enviado com sucesso!";
                    e.Values["LINK_RG"] = "~/Web/Administracao/Upload/RelatorioG/" + fn.ToString();
                    //---
                   
                }
                catch (Exception ex)
                {
                    lbResultado.Text = ex.Message;
                }
            }

        }
    }
  • quinta-feira, 5 de novembro de 2009 13:03Paulo Medeiros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    VALEU SEILOR DEU CERTO..
    MAS EU GOSTRIA DE ENTENDER O CODIGO ABAIXO:

    public string Varano
        {
            get
            {
                if (ViewState["Varano"] == null)
                    return "";
                else
                    return ViewState["Varano"].ToString();
            }

            set
            {
                ViewState.Add("Varano", value);
            }
        }

    PQ NÃO APENAS DECLARAR A VARIAVEL, PQ TENHO QUE TRATAR DESSA FORMA ACIMA ?