Jump to content
hyper_pixel

erro com vetores c# / {“Referência de objeto não definida para uma instância de um objeto.”}

Recommended Posts

 

Amigos estou vindo no php e começando desenvolver em C#

As diferenças sao muitas, as ideias que tenho, quando vou aplicar dão erros.

Como exemplo, tenho um combobox html que preenchido dinamicamente, que pensei separar o código que seria o value do combobox e colocar como um valor em cada posição de um array ate ae tudo bem, mas não funciona.

A versão atual da o seguinte erro, alguém tem alguma ideia de como resolvo?

Da esse erro:

 

                        if (v != null)//MEU TRECHO PESQUISEI QUE TALVEZ SOLUCIONARIA O ERRO

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

 

retorno/resultado é um json com os dados, da base, que enche o combobox.

 

O erro da quando debugando ele chega na linha do vetor!
 
An exception of type 'System.NullReferenceException' occurred in xyz.UI.dll but was not handled in user code

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

   em xyz.UI.Processxyz.Venda.AjaxPrazoMedioClienteEditar.ProcessRequest(HttpContext context)
   em System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   em System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

 

Citar

 

using System;
using System.Configuration;
using System.Data;
using System.Net.Http;
using System.Text;
using System.Web;
using Newtonsoft.Json.Linq;

namespace empresa.UI.ProcessEmpresa
{
    /// <summary>
    /// Summary description for AjaxPrazoMedioCliente
    /// </summary>
    public class AjaxPrazoMedioCliente : IHttpHandler
    {
        string[] v;//CRIACAO DO VETOR 
        public int i, j = 0;

        public void ProcessRequest(HttpContext context)
        {
            Grupo = Convert.ToString(context.Request.QueryString["codgrupo"]);
            temmontante = Convert.ToString(context.Request.QueryString["temmontante"]);
            selecionado = Convert.ToString(context.Request.QueryString["selecionado"]);
            temmontante = temmontante.Equals("") ? "0" : temmontante;
            HttpClient client = null;
            string retorno = string.Empty;
            if (client == null)
            {
                client = new HttpClient();
                client.BaseAddress = new Uri(ConfigurationManager.AppSettings["url_servidor"]);
                client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                HttpResponseMessage resultado = client.GetAsync("xyz/Venda/PrazoMedio/" + Grupo + "/" + temmontante).Result;
                retorno = resultado.Content.ReadAsStringAsync().Result;

                if (resultado.StatusCode != System.Net.HttpStatusCode.NotFound)
                {
                    if (retorno != "[]")
                {
                    sb.Append("<select name=\"txtpagpedido\" id=\"txtpagpedido\" onchange=\"HabilitarDescontoPromocional()\" style=\"width: 200px;\" >");
                    sb.Append("<option value=\"0\">Selecione..</option>");
                    JArray usuarioarrray = JArray.Parse(retorno);

                    foreach (JObject obj in usuarioarrray.Children<JObject>())
                    {
                        foreach (JProperty prop in obj.Properties())
                        {
                            if (v != null)//MEU TRECHO PESQUISEI QUE TALVEZ SOLUCIONARIA O ERRO
                                if (Convert.ToString(prop.Value) != v)
                                    v = prop.Value.ToString();
                                else
                                    break;

                            //vetor = Convert.ToString(prop.Value.ToString());

                            switch (prop.Name)
                            {
                                case "e4_CODIGO":
                                    if (prop.Value.ToString().Equals(selecionado))
                                        sb.Append("<option value=\"" + Convert.ToString(prop.Value.ToString()) + "\" selected=\"selected\" >");
                                    else
                                        sb.Append("<option value=\"" + Convert.ToString(prop.Value.ToString()) + "\"  >");
                                    break;
                                case "e4_DESCRI":
                                    sb.Append(Convert.ToString(prop.Value.ToString()) + "</option>");
                                    break;
                                default:
                                    break;
                            }
                            i++;
                        }
                    }

                    sb.Append("</select>");

                }

            }

            context.Response.Write(sb.ToString());
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

 

 

Share this post


Link to post
Share on other sites
 

O problema esta nesse combo tirar os valores repetidos

 

Citar


<select name="txtpagpedido" id="txtpagpedido" onchange="HabilitarDescontoPromocional()" style="width: 200px;" >
<option value="0">Selecione..</option>
<option value="003"  >28</option>
<option value="004"  >21/28/35</option>
<option value="021"  >21</option>
<option value="049"  >49</option>
<option value="117"  >42/56/70</option>
<option value="127"  >28/42/56</option>
<option value="127"  >28/42/56</option>
<option value="127"  >28/42/56</option>
<option value="133"  >28/56</option><option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="140"  >28/56/84</option>
<option value="149"  >ANTECIPADO</option>
<option value="149"  >ANTECIPADO</option>
<option value="149"  >ANTECIPADO</option>
<option value="149"  >ANTECIPADO</option>
<option value="149"  >ANTECIPADO</option>
<option value="149"  >ANTECIPADO</option>
<option value="154"  >42/56</option>
<option value="212"  >28/42/56/70</option>
<option value="213"  >28/42</option>
<option value="239"  >14</option>
<option value="240"  >14/28/42</option>
<option value="240"  >14/28/42</option>
<option value="264"  >28/42/56/70/84</option>
<option value="264"  >28/42/56/70/84</option>
<option value="264"  >28/42/56/70/84</option>
<option value="265"  >35/42/49</option>
<option value="266"  >10</option><option value="267"  >28/35/42/49</option>
<option value="268"  >56</option>
<option value="268"  >56</option>
<option value="268"  >56</option>
<option value="268"  >56</option>
<option value="269"  >35</option>
<option value="500"  >28/35/42</option>
<option value="502"  >28/35/42/49/56</option>
<option value="502"  >28/35/42/49/56</option>
<option value="502"  >28/35/42/49/56</option>
<option value="504"  >28+7D 7X</option>
<option value="506"  >42</option>
<option value="507"  >35/42/49/56</option>
<option value="508"  >35/42/49/56/63</option>
<option value="511"  >42/49/56</option>
<option value="512"  >42/49/56/63/70</option>
<option value="520"  >42/70/90</option>
<option value="524"  >14/28</option>
<option value="560"  >25/56</option>
<option value="562" selected="selected" >28/42/56/70/84</option>
</select>

 

 

colocando um valor estatico/fixo deu o seguinte erro      

Citar

 

  private string[] v = new string[100];


An exception of type 'System.IndexOutOfRangeException' occurred in xyz.UI.dll but was not handled in user code

Additional information: O índice estava fora dos limites da matriz.


 


{"O índice estava fora dos limites da matriz."}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Hudson Medeiros
      Bom dia!
      To precisando criar um formulário condicional com base em um menu dropdown que tem no meu site. 
      Ele puxa as informações de uma lista no código, e gostaria que ao selecionar uma opção específica abrisse novos campos de formulário e alguns sumissem.
       
      Alguém tem alguma ideia de como posso executar isso?
    • By SandroPaiva
      Ola, sou novo no forum e também novato em programação.
       
      Estou aprendendo sozinho o C# usando o Visual Studio 2017, e estou seguindo uma apostila bem prática e de fácil entendimento, porém, por conta da minha inexperiência como Visual Studio 2017, me deparei com um problema:
       
      Durante um projeto fiz a inserção de um button e não dei funcionalidade nenhuma a ele, só deixei ele lá no formulário junto com outros componentes já programados, como duas textBox e outros dois buttons, executei para testar uma funcionalidade simples porém deu um erro e apresentou uma nova aba onde o visual studio apresenta links de solução online que na verdade não me ajudaram muito. Depois disso o formulário com os componentes sumiu, tenho as guias Form1.Designer.cs, que deveria aparecer o formulário mas só aparecem linhas de códigos que fazem referencia aos componentes que deveriam estar visíveis, e a Form1.cs. Já encerrei e abri o VS e não deu certo.
       
      Não achei outro tópico ou pergunta com essa dúvida, por isso a fiz agora. Se existe alguma duvida parecida, peço desculpas pela repetição e peço que me indiquem a solução.
       
      Agradeço desde já quem puder me ajudar.
    • By rtavix
      Alguém já se deparou com este erro? Sugestões para resolver?
      public static Processo Consultar---ProcessoER(string numProcesso) { ISession sessao = NhibernateHelper.SessaoCorrente; Processo processo; try { processo = new Processo(); ICriteria criterios = sessao.CreateCriteria(processo.GetType()); //criterios.Add(NHibernate.Criterion.Expression.Sql("replace(replace(replace(Num_Proc_Judicial, '.'), '-'), '/') = replace(replace(replace(?, '.'), '-'), '/')", numProcesso, NHibernateUtil.String)); criterios.Add(NHibernate.Criterion.Expression.Sql("regexp_replace(Num_Proc_Judicial || '/','[[:punct:]]','') = regexp_replace(? || '/','[[:punct:]]','')", numProcesso, NHibernateUtil.String)); return criterios.UniqueResult<Processo>(); } catch (Exception e) { throw new Exception(e.ToString()); } } Erro:
       
      NHibernate.NonUniqueResultException: query did not return a unique result: 2
         em NHibernate.Impl.AbstractQueryImpl.UniqueElement(IList list)
         em NHibernate.Impl.CriteriaImpl.UniqueResult()
         em NHibernate.Impl.CriteriaImpl.UniqueResult[T]()
         em SDPJDominio.DataAccess.ProcessoDAO.Consultar---ProcessoER(String numProcesso) na D:\Repositório SVN\SDP\SDPJ\branches\SDPJ-V3.0.0\SDPJDominio\DataAccess\ProcessoDAO.cs:linha 111
       
      observação a linha 111, é essa linha: 
      return criterios.UniqueResult<Processo>();
       
      Como poderia sanar esse erro?
    • By hugo_stark
      preciso descobrir qual o tipo dessa criptografia, e como reverte-la : 5XCHU1B7C6F0MV113J1QWRPD7IEF6LZ
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.