Ralado Posted November 26, 2019 at 12:21 AM Report Share #616708 Posted November 26, 2019 at 12:21 AM esta acontecendo este erro quando vou atualizar o cadastro como faço para resolver? parameter index is out of range c# Link to comment Share on other sites More sharing options...
Rechousa Posted November 26, 2019 at 12:26 AM Report Share #616709 Posted November 26, 2019 at 12:26 AM 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 comment Share on other sites More sharing options...
Ralado Posted November 26, 2019 at 12:58 AM Author Report Share #616710 Posted November 26, 2019 at 12:58 AM 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 comment Share on other sites More sharing options...
Rechousa Posted November 26, 2019 at 01:02 AM Report Share #616711 Posted November 26, 2019 at 01:02 AM Em que linha é que dá erro? Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa Link to comment Share on other sites More sharing options...
Ralado Posted November 26, 2019 at 02:27 AM Author Report Share #616712 Posted November 26, 2019 at 02:27 AM xi nao sei como faz para saber onde ta o erro Link to comment Share on other sites More sharing options...
Ralado Posted November 26, 2019 at 11:20 PM Author Report Share #616722 Posted November 26, 2019 at 11:20 PM 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 comment Share on other sites More sharing options...
tiagocosta.uca Posted November 27, 2019 at 10:31 PM Report Share #616732 Posted November 27, 2019 at 10:31 PM Consegues mostrar a Exception toda? Isso ou conseguires partilhar o teu projecto seria mais facil Link to comment Share on other sites More sharing options...
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