Ralado 0 Posted November 26, 2019 Report Share Posted November 26, 2019 esta acontecendo este erro quando vou atualizar o cadastro como faço para resolver? parameter index is out of range c# Link to post Share on other sites
Rechousa 70 Posted November 26, 2019 Report Share Posted November 26, 2019 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 Link to post Share on other sites
Ralado 0 Posted November 26, 2019 Author Report Share Posted November 26, 2019 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 } Link to post Share on other sites
Rechousa 70 Posted November 26, 2019 Report Share Posted November 26, 2019 Em que linha é que dá erro? Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa Link to post Share on other sites
Ralado 0 Posted November 26, 2019 Author Report Share Posted November 26, 2019 xi nao sei como faz para saber onde ta o erro Link to post Share on other sites
Ralado 0 Posted November 26, 2019 Author Report Share Posted November 26, 2019 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; } Link to post Share on other sites
tiagocosta.uca 0 Posted November 27, 2019 Report Share Posted November 27, 2019 Consegues mostrar a Exception toda? Isso ou conseguires partilhar o teu projecto seria mais facil Acelera a tua evolução - https://ultimatecodeacademy.youcanbook.me/ Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now