Jump to content
Ralado

Erro "parameter index is out of range"

Recommended Posts

Ralado

esta acontecendo este erro quando vou atualizar o cadastro

como faço para resolver?

parameter index is out of range c# 

Share this post


Link to post
Share on other sites
Rechousa

Viva,

O erro "index is out of range" significa que estás a aceder a uma posição que não existe numa coleção (possivelmente array).

Caso seja um ciclo for, em .net as coleções começam por 0 e vão até à posição tamanho-1.

Exemplo de um ciclo for:
 

string[] meses = { "Janeiro", "Fevereiro", "Março" };

for (int i = 0; i < meses.Length; i++)
{
  Console.WriteLine(meses[i]);
}

 


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
Ralado

desculpe eu estou tentando aprender entao estou bem perdido

este é meu codigo

public object Salvar(ClienteDTO pCli)
        {
            string lSql = string.Empty;
            if (pCli.Idcliente == 0)
            {
                lSql = "INSERT INTO tb_cliente (DataCadastro, Nome, CPF, Logradouro, Localidade, UF, Bairro, Numero, Cep, Telefone, Celular, Email, IdFuncionario, LimiteCredito) ";
                lSql += " VALUES(@DataCadastro,@Nome,@CPF,@Logradouro,@Localidade,@UF,@Bairro,@Numero,@Cep,@Telefone,@Celular,@Email,@IdFuncionario,@LimiteCredito);";
                lSql += " SELECT LAST_INSERT_ID();";
            }
            else
            {
                lSql = "UPDATE tb_cliente SET DataCadastro=?,Nome=?,CPF=?,Logradouro=?,Localidade=?,UF=?,Bairro=?,Numero=?,Cep=?,Telefone=?,Celular=?,Email=?,LimiteCredito=?,IdFuncionario=?";
                lSql += string.Format(" WHERE tb_cliente.Idcliente = {0}", pCli.Idcliente);
            }
            
            lAcessoDados.LimparParametro();// Limpar parâmetro salvar            
            lAcessoDados.AdicionarParametro("@Nome", pCli.Nome);
            lAcessoDados.AdicionarParametro("@CPF", pCli.CPF);
            lAcessoDados.AdicionarParametro("@Logradouro", pCli.Logradouro);
            lAcessoDados.AdicionarParametro("@Localidade", pCli.Localidade);
            lAcessoDados.AdicionarParametro("@UF", pCli.UF);
            lAcessoDados.AdicionarParametro("@Bairro", pCli.Bairro);
            lAcessoDados.AdicionarParametro("@Numero", pCli.Numero);
            lAcessoDados.AdicionarParametro("@Cep", pCli.Cep);
            lAcessoDados.AdicionarParametro("@Telefone", pCli.Telefone);
            lAcessoDados.AdicionarParametro("@Celular", pCli.Celular);
            lAcessoDados.AdicionarParametro("@Email", pCli.Email);
            lAcessoDados.AdicionarParametro("@LimiteCredito", pCli.LimiteCredito);
            lAcessoDados.AdicionarParametro("@IdFuncionario", pCli.Cadastrante.IdFuncionario);
            if (pCli.Idcliente == 0) lAcessoDados.AdicionarParametro("@DataCadastro", pCli.DataCadastro);

            if (pCli.Idcliente == 0)
            {
                return lAcessoDados.ExecutarManipulacao(CommandType.Text, lSql).ToString();
            }
            else
            {
                lAcessoDados.ExecutarManipulacao(CommandType.Text, lSql);
                return pCli.Idcliente;
            }

        }

meu botao salvar

private void BtnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                if (Metodos.MensagemSalvar() == DialogResult.Yes)
                {
                    ClienteDTO lCli = new ClienteDTO()
                    {
                        Idcliente = txtId.Text == "" ? 0 : txtId.Text.ToInt(),
                        DataCadastro = dtpDataCad.Value,
                        Nome = txtNome.Text,
                        CPF = txtCpf.Text,
                        Logradouro = txtLogradouro.Text,
                        Localidade = txtLocalidade.Text,
                        UF = txtUf.Text,
                        Bairro = txtBairro.Text,
                        Numero = txtNumero.Text,
                        Cep = txtCep.Text,
                        Telefone = txtTelefone.Text,
                        Celular = txtCelular.Text,                      
                        Email = txtEmail.Text,
                        LimiteCredito = txtLimiCre.Text == "" ? 0 : txtLimiCre.Text.ToDecimal(),

                    };
                    lCli.Cadastrante = (FuncionarioDTO)cbCadastrante.SelectedItem;// mostrar o funcionario na combobox do cliente

                    lClienteBLL.Salvar(lCli);
                    if (lCli.Idcliente == 0)
                    {
                        Metodos.MensagemInserido();
                    }
                    else
                    {
                        Metodos.MensagemAlterado();
                    };
                }
                Metodos.LimparTextbox(tbcCadCliente.Controls); // Limpar textbox dentro de um tabcontrol
                Metodos.LimparMaskedTextbox(tbcCadCliente.Controls); //Limpa o Maskedtextbox dentro de um tabcontrol
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            txtNome.ReadOnly = true;//Desabilita o textbox
            txtCpf.ReadOnly = true;
            txtLogradouro.ReadOnly = true;
            txtLocalidade.ReadOnly = true;
            txtUf.ReadOnly = true;
            txtBairro.ReadOnly = true;
            txtNumero.ReadOnly = true;
            txtCep.ReadOnly = true;
            txtTelefone.ReadOnly = true;
            txtCelular.ReadOnly = true;
            txtEmail.ReadOnly = true;
            txtLimiCre.ReadOnly = true;
            
            btnNovo.Enabled = true;
            btnExcluir.Enabled = false;
            btnSalvar.Enabled = false;
            txtNome.Focus(); //Leva o foco direto para o textbox Nome
        }

Share this post


Link to post
Share on other sites
Ralado

quando ele chaga neste ponto

return pCli.Idcliente ele deveria ir para meu metodo salvar em bll

mas ele vai direto para o exeption 

 {
                lAcessoDados.ExecutarManipulacao(CommandType.Text, lSql);
                return pCli.Idcliente;
            }

Share this post


Link to post
Share on other sites
tiagocosta.uca

Consegues mostrar a Exception toda? 

Isso ou conseguires partilhar o teu projecto seria mais facil 


Acelera a tua evolução - https://ultimatecodeacademy.youcanbook.me/

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.