Tiago_Candido Posted November 24, 2020 at 12:47 PM Report Share #620344 Posted November 24, 2020 at 12:47 PM Boas sou novo em programação e gostava que me ajudassem. Se a datasourse da datagridview estiver vazia e eu inserir um registo na lista, antes de gravar na base de dados e clicar sobre o registo na datagridview aparece me o seguinte erro onde chamo o form: System.IndexOutOfRangeException: 'O índice -1 não contém um valor.' Este é o meu código para inserir: private void BtnInserir_Click(object sender, EventArgs e) { if(TxtCodProd.Text.Trim() != "" && TxtDescricao.Text.Trim() != "" && TxtQuantidade.Text.Trim() != "" && TxtPrecoCusto.Text.Trim() != "" && TxtPvp.Text.Trim() != "") { char tipoProduto; if (RbtProduto.Checked == true) { tipoProduto = 'P'; } else { tipoProduto = 'S'; } var movTemp = new DBMovimentosObra(); if (FTObra.id_obra != 0) { movTemp.id_obra = FTObra.id_obra; } movTemp.tipo = tipoProduto.ToString(); movTemp.cod_prod = TxtCodProd.Text.Trim(); movTemp.descricao = TxtDescricao.Text.Trim(); movTemp.num_serie = TxtNumSerieProduto.Text.Trim(); movTemp.quantidade = decimal.Parse(TxtQuantidade.Text.Trim()); movTemp.p_custo = decimal.Parse(TxtPrecoCusto.Text.Trim()); movTemp.pvp = decimal.Parse(TxtPvp.Text.Trim()); // Adiciona a Lista temporaria LinhasObra.Add(movTemp); } else { ShowMessage("Os campos com asterisco são obrigatórios", MessageType.Warning); } ReadAllMov(); Clear(); Agradecia se me pudessem ajudar :) Link to comment Share on other sites More sharing options...
RicardoLopes Posted November 25, 2020 at 12:21 PM Report Share #620376 Posted November 25, 2020 at 12:21 PM Não me parece que o teu problema seja no inserir, mas sim quando clickas na linha na data grid view, deverás estar a tentar a aceder a uma lista com um determinado indice que não existe. Poderás eventualmente estar a desvaziar a lista em questão (não sei o que fazes nos métodods ReadAllMov() e Clear()) ou eventualmente não chegas a adicionar o elemento a data source da datagrid. Só com esse excerto de código é muito dificil de dizer onde poderá estar o problema. A data source da tua data grid é o "LinhasObra"? Que estás a usar? WPF? Windows Forms? e claro, que é que estás a fazer nesses dois métodos. 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