public bool Build() { ToolStripProgressBar bar = new ToolStripProgressBar(); bar.Maximum = _projects.Count; ToolStripLabel label = new ToolStripLabel(); _hostWindow.StatusStrip.Items.Add(bar); _hostWindow.StatusStrip.Items.Add(label); foreach (KeyValuePair <string, Project> project in _projects) { ILogger logger = new ConsoleLogger(); label.Text = "Building... " + project.Key; if (!project.Value.Build(logger)) { MessageBox.Show("Build Failed"); _hostWindow.StatusStrip.Items.Remove(bar); _hostWindow.StatusStrip.Items.Remove(label); bar.Dispose(); label.Dispose(); return(false); } ++bar.Value; } _hostWindow.StatusStrip.Items.Remove(bar); _hostWindow.StatusStrip.Items.Remove(label); bar.Dispose(); label.Dispose(); return(true); }
private void DntOpenerWorker_DoWork(object sender, DoWorkEventArgs e) { var stream = e.Argument as Stream; var worker = sender as BackgroundWorker; bool IsFileStream = (stream is FileStream) ? true : false; ToolStripProgressBar bar = new ToolStripProgressBar() { Style = ProgressBarStyle.Continuous, Maximum = 100, Value = 0 }; ToolStripLabel label = new ToolStripLabel("Loading : " + ((IsFileStream) ? ((FileStream)stream).Name : "File")); ToolStripItem[] items = { label, bar }; DntViewer viewer = new DntViewer(); viewer.StatusChanged += (s, a) => Invoke(new Action(() => bar.Value = viewer.Status)); Invoke(new Action(() => statusStrip1.Items.AddRange(items))); viewer.LoadDntStream(stream); Invoke(new Action(() => { viewer.Show(dockPanel1, DockState.Document); statusStrip1.Items.Remove(label); statusStrip1.Items.Remove(bar); stream.Dispose(); label.Dispose(); bar.Dispose(); })); }
private void bgwImportaExcel_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { BarraProgresso.Dispose(); lblStripImportar.Dispose(); dgvPos.DataSource = output.Tables[0]; dgvPos.AutoGenerateColumns = true; }
public void Close(EndCode code) { if (timer != null) { timer.Dispose(); } if (labelTime != null) { labelTime.Dispose(); } }
public void Dispose() { if (TrayIcon_Menu != null) { TrayIcon_Menu.Dispose(); TrayIcon_Menu = null; } if (TrayIcon_Artist != null) { TrayIcon_Artist.Dispose(); TrayIcon_Artist = null; } if (TrayIcon_Title != null) { TrayIcon_Title.Dispose(); TrayIcon_Title = null; } if (TrayIcon_Diff != null) { TrayIcon_Diff.Dispose(); TrayIcon_Diff = null; } if (TrayIcon_Play != null) { TrayIcon_Play.Dispose(); TrayIcon_Play = null; } if (TrayIcon_PlayNext != null) { TrayIcon_PlayNext.Dispose(); TrayIcon_PlayNext = null; } if (TrayIcon_Exit != null) { TrayIcon_Exit.Dispose(); TrayIcon_Exit = null; } }
//::Salva pos do DataGrid para o BD:: public void salvarInvent() { int cont = 0; // Contador de linhas int contEx = 0; // Contador de exceções string posicao, produto, descricao, umb, referencia, metodo_inv, uc, tipo_dep, status_inv; string data_criacao2, hora_criacao2, data_ativacao2, hora_ativacao2, data_contagem2, tempo_contagem2, data_lancamento2, hora_registro2; double qtd_registrada, qtd_cont_inv, qtd_dif; DateTime data_criacao, hora_criacao, data_ativacao, hora_ativacao, data_contagem, tempo_contagem, data_lancamento, hora_registro; int doc_inv, ordem, contador; LiteBD LiteBD = new LiteBD(); ToolStripProgressBar BarraProgresso = new ToolStripProgressBar(); lblStripSalvar.Text = "Salvando Inventários:"; frmPrincipal.statusStrip1.Items.Add(lblStripSalvar); frmPrincipal.statusStrip1.Items.Add(BarraProgresso); BarraProgresso.Maximum = dgvPos.RowCount; lblStripPorcent.Text = "0%"; frmPrincipal.statusStrip1.Items.Add(lblStripPorcent); Thread backgroundThread = new Thread( new ThreadStart(() => { LiteBD.AbrirConexao(); LiteBD.InsertDeleteUpdate("DELETE FROM Inventarios"); for (cont = 0; cont < dgvPos.RowCount; cont++) { try { doc_inv = Convert.ToInt32(string.IsNullOrEmpty(dgvPos.Rows[cont].Cells[0].Value.ToString()) ? 0 : dgvPos.Rows[cont].Cells[0].Value); ordem = Convert.ToInt32(string.IsNullOrEmpty(dgvPos.Rows[cont].Cells[1].Value.ToString()) ? 0 : dgvPos.Rows[cont].Cells[1].Value); posicao = dgvPos.Rows[cont].Cells[2].Value.ToString(); produto = dgvPos.Rows[cont].Cells[3].Value.ToString(); descricao = dgvPos.Rows[cont].Cells[4].Value.ToString().Replace("\"", "").Replace("'", ""); qtd_registrada = Convert.ToDouble(dgvPos.Rows[cont].Cells[5].Value.ToString()); qtd_cont_inv = Convert.ToDouble(dgvPos.Rows[cont].Cells[6].Value.ToString()); qtd_dif = Convert.ToDouble(dgvPos.Rows[cont].Cells[7].Value.ToString()); umb = dgvPos.Rows[cont].Cells[8].Value.ToString(); referencia = dgvPos.Rows[cont].Cells[9].Value.ToString(); metodo_inv = dgvPos.Rows[cont].Cells[10].Value.ToString(); data_criacao = DateTime.Parse( string.IsNullOrEmpty(dgvPos.Rows[cont].Cells[11].Value.ToString()) ? "01/01/9999": dgvPos.Rows[cont].Cells[11].Value.ToString().Substring(0, 10)); hora_criacao = DateTime.Parse( string.IsNullOrEmpty(dgvPos.Rows[cont].Cells[12].Value.ToString()) ? "99:99" : dgvPos.Rows[cont].Cells[12].Value.ToString()); data_ativacao = DateTime.Parse( string.IsNullOrEmpty(dgvPos.Rows[cont].Cells[13].Value.ToString()) ? "01/01/9999" : dgvPos.Rows[cont].Cells[13].Value.ToString().Substring(0, 10)); hora_ativacao = DateTime.Parse( string.IsNullOrEmpty(dgvPos.Rows[cont].Cells[14].Value.ToString()) ? "99:99" : dgvPos.Rows[cont].Cells[14].Value.ToString()); data_contagem = DateTime.Parse( string.IsNullOrEmpty(dgvPos.Rows[cont].Cells[15].Value.ToString()) ? "01/01/9999" : dgvPos.Rows[cont].Cells[15].Value.ToString().Substring(0, 10)); tempo_contagem = DateTime.Parse( string.IsNullOrEmpty(dgvPos.Rows[cont].Cells[16].Value.ToString()) ? "99:99" : dgvPos.Rows[cont].Cells[16].Value.ToString()); contador = Convert.ToInt32( string.IsNullOrEmpty(dgvPos.Rows[cont].Cells[17].Value.ToString()) ? 0 : dgvPos.Rows[cont].Cells[17].Value); // se a célula for vazia então 0 data_lancamento = DateTime.Parse( string.IsNullOrEmpty(dgvPos.Rows[cont].Cells[18].Value.ToString()) ? "01/01/9999" : dgvPos.Rows[cont].Cells[18].Value.ToString()); hora_registro = DateTime.Parse(dgvPos.Rows[cont].Cells[19].Value.ToString()); uc = dgvPos.Rows[cont].Cells[20].Value.ToString(); tipo_dep = dgvPos.Rows[cont].Cells[21].Value.ToString(); status_inv = dgvPos.Rows[cont].Cells[22].Value.ToString(); } catch (Exception ex) { MessageBox.Show("Dado inconsistente, por favor, importe a planilha novamente!" + "\n \n" + "Detalhe: " + ex.Message, "Erro na importação", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Convertendo datas para o formato do banco de dados data_criacao2 = (string.Format("{0,2:00}", data_criacao.Year) + "-" + string.Format("{0,2:00}", data_criacao.Month) + "-" + string.Format("{0,2:00}", data_criacao.Day)); data_ativacao2 = data_ativacao.Year.ToString() + "-" + string.Format("{0,2:00}", data_ativacao.Month) + "-" + string.Format("{0,2:00}", data_ativacao.Day); data_contagem2 = string.Format("{0,2:00}", data_contagem.Year) + "-" + string.Format("{0,2:00}", data_contagem.Month) + "-" + string.Format("{0,2:00}", data_contagem.Day); data_lancamento2 = data_lancamento.Year.ToString() + "-" + string.Format("{0,2:00}", data_lancamento.Month) + "-" + string.Format("{0,2:00}", data_lancamento.Day); hora_criacao2 = hora_criacao.Hour.ToString("00") + ":" + hora_ativacao.Minute.ToString("00"); hora_ativacao2 = hora_ativacao.Hour.ToString("00") + ":" + hora_ativacao.Minute.ToString("00"); tempo_contagem2 = tempo_contagem.Hour.ToString("00") + ":" + tempo_contagem.Minute.ToString("00"); hora_registro2 = hora_registro.Hour.ToString("00") + ":" + hora_registro.Minute.ToString("00"); SQL = "INSERT INTO Inventarios (doc_inv, ordem, posicao, produto, descricao_produto, qtd_registrada, qtd_cont_inv, qtd_dif, umb, " + "referencia, metodo_inv, data_criacao, hora_criacao, data_ativacao, hora_ativacao, data_contagem, tempo_contagem, contador, data_lancamento, hora_registro, uc, tipo_dep, status_inv)" + "values (" + doc_inv + ", " + ordem + ",'" + posicao + "','" + produto + "','" + descricao + "',REPLACE('" + qtd_registrada + "',',', '.'), REPLACE('" + qtd_cont_inv + "',',','.'), REPLACE('" + qtd_dif + "', ',', '.'),'" + umb + "','" + referencia + "', '" + metodo_inv + "','" + data_criacao2 + "','" + hora_criacao2 + "','" + data_ativacao2 + "','" + hora_ativacao2 + "','" + data_contagem2 + "', '" + tempo_contagem2 + "'," + contador + ",'" + data_lancamento2 + "','" + hora_registro2 + "','" + uc + "', '" + tipo_dep + "', '" + status_inv + "' )"; try { LiteBD.InsertDeleteUpdate(SQL); } catch (OleDbException) { contEx += 1; } catch (Exception ex) { MessageBox.Show("Erro desconhecido, contate o administrador do sistema! \n" + ex.Message, "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Error); } BarraProgresso.Value = cont; lblStripPorcent.Text = Math.Round(((decimal)cont / (decimal)dgvPos.RowCount) * 100, 1).ToString() + "%"; if (produto == "") { produto = "0"; } if (cont == dgvPos.RowCount - 1) { // Se a thread já finalizou, destrói a Progressbar BarraProgresso.Dispose(); lblStripSalvar.Dispose(); lblStripPorcent.Dispose(); if (contEx == 0) { MessageBox.Show("Inventários salvo com sucesso!!!", "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Não foi possível salvar " + contEx + " linhas!", "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } //txtUltimoInventario.Text = Conexao.consultaScalar("SELECT DAT_post & ' ÀS ' & MAX(hr_post) AS hr_post FROM INVENTARIO WHERE (((INVENTARIO.[DAT_POST])=(SELECT Max(dat_POST) FROM INVENTARIO))) group by dat_post"); } //if } //for LiteBD.FecharConexao(); } ));//thread backgroundThread.Start(); }
private void ImportarExcel() { if (ofd.ShowDialog() != DialogResult.OK) { return; } // ======================IMPORTANDO PLANILHA PARA DATASET AccessBD conex = new AccessBD(); conex.AbrirConexao(); conex.insert_Delete_Update("DELETE * FROM ESTOQUE"); conex.FecharConexao(); string arquivo = ofd.FileName; OleDbConnection conn = new OleDbConnection(("Provider=Microsoft.ACE.OLEDB.12.0; " + ("data source=" + arquivo + "; " + "Extended Properties=Excel 12.0;"))); // Select the data from Sheet1 of the workbook. OleDbDataAdapter ada = new OleDbDataAdapter("select * from [Sheet1$]", conn); DataSet ds = new DataSet(); ada.Fill(ds); conn.Close(); //====================== SALVANDO DATASET NO ACCESS string SQL, posicao, lm, descricao, umb, tipo_estoque, uma, uc; int tipo_pos, qtd_umb, qtd_uma; ToolStripProgressBar BarraProgresso = new ToolStripProgressBar(); ToolStripLabel lblStripSalvar = new ToolStripLabel(); BarraProgresso.Maximum = ds.Tables[0].Rows.Count; BarraProgresso.Value = 0; lblStripSalvar.Text = "Salvando Estoque:"; frmPrincipal.statusStrip1.Items.Add(lblStripSalvar); frmPrincipal.statusStrip1.Items.Add(BarraProgresso); conex.AbrirConexao(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { tipo_pos = Convert.ToInt32(ds.Tables[0].Rows[i][0]); posicao = ds.Tables[0].Rows[i][1].ToString(); lm = ds.Tables[0].Rows[i][2].ToString(); descricao = ds.Tables[0].Rows[i][3].ToString().Replace("\"", "").Replace("'", ""); qtd_umb = Convert.ToInt32(ds.Tables[0].Rows[i][4]); umb = ds.Tables[0].Rows[i][5].ToString(); tipo_estoque = ds.Tables[0].Rows[i][6].ToString(); qtd_uma = Convert.ToInt32(ds.Tables[0].Rows[i][7]); uma = ds.Tables[0].Rows[i][8].ToString(); uc = ds.Tables[0].Rows[i][9].ToString(); SQL = "INSERT INTO ESTOQUE (TIPO_POS, POSICAO, PRODUTO, DESCRICAO, QTD_UMB, UMB, TIPO_ESTOQUE, QTD_UMA, UC) " + "VALUES(" + tipo_pos + ", '" + posicao + "', '" + lm + "', '" + descricao + "', " + qtd_umb + ", '" + umb + "', '" + tipo_estoque + "', " + qtd_uma + ", '" + uc + "')"; conex.insert_Delete_Update(SQL); BarraProgresso.Value = i; } BarraProgresso.Value = 0; BarraProgresso.Dispose(); lblStripSalvar.Dispose(); //==================== PREENCHENDO tabela VALOR ESTOQUE e DATA GRID string[] mes = new string[12]; int mes2; int qtdItens = Convert.ToInt32(conex.consultaScalar("SELECT COUNT(PRODUTO) FROM (SELECT DISTINCT PRODUTO FROM ESTOQUE)")); int valorEstoque = Convert.ToInt32(conex.consultaScalar("SELECT SUM(VALOR2) FROM (SELECT A.PRODUTO, A.QTD_UMB * B.VALOR as Valor2 FROM ESTOQUE AS A LEFT JOIN VALPROD AS B ON A.PRODUTO = B.PRODUTO)")); int qtdItensSemPreco = Convert.ToInt32(conex.consultaScalar("SELECT COUNT(PRODUTO) FROM (SELECT A.PRODUTO, A.QTD_UMB, B.VALOR FROM ESTOQUE AS A LEFT JOIN VALPROD AS B ON A.PRODUTO = B.PRODUTO) WHERE VALOR IS NULL")); string data = DateTime.Now.ToString(); //Preenchendo array mes[0] = "JANEIRO"; mes[1] = "FEVEREIRO"; mes[2] = "MARÇO"; mes[3] = "ABRIL"; mes[4] = "MAIO"; mes[5] = "JUNHO"; mes[6] = "JULHO"; mes[7] = "AGOSTO"; mes[8] = "SETEMBRO"; mes[9] = "OUTUBRO"; mes[10] = "NOVEMBRO"; mes[11] = "DEZEMBRO"; for (int i = 0; i < 12; i++) { if (mes[i] == dgvImportarEstoque.CurrentRow.Cells[0].Value.ToString()) { mes2 = i + 1; conex.insert_Delete_Update("UPDATE VALOR_ESTOQUE SET valorestoque = " + valorEstoque + ", qtditens = " + qtdItens + ", atualizado = '" + data + "' WHERE MES = " + mes2.ToString() + DateTime.Now.Year); } } if (qtdItensSemPreco > 0) { MessageBox.Show(qtdItensSemPreco.ToString() + " itens estão sem preço! favor importar planilha com o preço dos itens atualizados!", "ATENÇÃO!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } conex.FecharConexao(); atualizarGrid(); }
//::Salva pos do DataGrid para o BD:: public void salvarInvent() { int cont = 0; // Contador de linhas int contEx = 0; // Contador de exceções string posicao, descProd, umb, referencia, metodo, chave, produto, uc, contador, qtdRegistrada, qtdContada, qtdDif, ordem, docInv1, tipoDep; string hrCriacao, hrAtivacao, hrContagem, hrPostagem; int datCriacao2, datAtivacao2, datContagem2, datPostagem2; DateTime datContagem, datPostagem, datAtivacao, datCriacao; AccessBD AccessBD = new AccessBD(); AccessBD.AbrirConexao(); ToolStripProgressBar BarraProgresso = new ToolStripProgressBar(); lblStripSalvar.Text = "Salvando Inventários:"; frmPrincipal.statusStrip1.Items.Add(lblStripSalvar); frmPrincipal.statusStrip1.Items.Add(BarraProgresso); BarraProgresso.Maximum = dgvPos.RowCount; lblStripPorcent.Text = "0%"; frmPrincipal.statusStrip1.Items.Add(lblStripPorcent); Thread backgroundThread = new Thread( new ThreadStart(() => { for (cont = 0; cont < dgvPos.RowCount; cont++) { try { docInv1 = dgvPos.Rows[cont].Cells[0].Value.ToString(); ordem = dgvPos.Rows[cont].Cells[1].Value.ToString(); posicao = dgvPos.Rows[cont].Cells[2].Value.ToString(); produto = dgvPos.Rows[cont].Cells[3].Value.ToString(); descProd = dgvPos.Rows[cont].Cells[4].Value.ToString().Replace("\"", "").Replace("'", ""); qtdRegistrada = dgvPos.Rows[cont].Cells[5].Value.ToString().Replace(",", "."); qtdContada = dgvPos.Rows[cont].Cells[6].Value.ToString().Replace(",", "."); qtdDif = dgvPos.Rows[cont].Cells[7].Value.ToString().Replace(",", "."); umb = dgvPos.Rows[cont].Cells[8].Value.ToString(); referencia = dgvPos.Rows[cont].Cells[9].Value.ToString(); metodo = dgvPos.Rows[cont].Cells[10].Value.ToString(); datCriacao = DateTime.Parse(dgvPos.Rows[cont].Cells[11].Value.ToString().Substring(0, 10)); hrCriacao = dgvPos.Rows[cont].Cells[12].Value.ToString().Substring(11, 5); datAtivacao = DateTime.Parse(dgvPos.Rows[cont].Cells[13].Value.ToString().Substring(0, 10)); hrAtivacao = dgvPos.Rows[cont].Cells[14].Value.ToString().Substring(11, 5); datContagem = DateTime.Parse(dgvPos.Rows[cont].Cells[15].Value.ToString().Substring(0, 10)); hrContagem = dgvPos.Rows[cont].Cells[16].Value.ToString().Substring(11, 5); contador = dgvPos.Rows[cont].Cells[17].Value.ToString(); datPostagem = DateTime.Parse(dgvPos.Rows[cont].Cells[18].Value.ToString().Substring(0, 10)); hrPostagem = dgvPos.Rows[cont].Cells[19].Value.ToString().Substring(11, 5); uc = dgvPos.Rows[cont].Cells[20].Value.ToString(); tipoDep = dgvPos.Rows[cont].Cells[21].Value.ToString(); chave = docInv1 + posicao + produto + qtdDif; } catch (Exception ex) { MessageBox.Show("Dado inconsistente, por favor, importe a planilha novamente!" + "\n \n" + "Detalhe: " + ex.Message, "Erro na importação", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Convertendo datas para o formato do banco de dados datPostagem2 = Convert.ToInt32(datPostagem.Year.ToString() + string.Format("{0,2:00}", datPostagem.Month) + string.Format("{0,2:00}", datPostagem.Day)); datAtivacao2 = Convert.ToInt32(datAtivacao.Year.ToString() + string.Format("{0,2:00}", datAtivacao.Month) + string.Format("{0,2:00}", datAtivacao.Day)); datContagem2 = Convert.ToInt32(string.Format("{0,2:00}", datContagem.Year) + string.Format("{0,2:00}", datContagem.Month) + string.Format("{0,2:00}", datContagem.Day)); datCriacao2 = Convert.ToInt32(string.Format("{0,2:00}", datCriacao.Year) + string.Format("{0,2:00}", datCriacao.Month) + string.Format("{0,2:00}", datCriacao.Day)); SQL = "INSERT INTO inventario (chave, doc_inv1, ordem, pos_dep, produto, desc_prod, qtd_regist, qtd_cont, qtd_difer, umb, " + "ref, metodo, dat_criacao, hr_criacao, dat_ativ, hr_ativ, dat_cont, hr_cont, contador, dat_post, hr_post, uc, tipo_dep)" + "values ('" + chave + "', " + docInv1 + "," + ordem + ",'" + posicao + "','" + produto + "','" + descProd + "', " + qtdRegistrada + "," + qtdContada + "," + qtdDif + ",'" + umb + "','" + referencia + "', '" + metodo + "'," + datCriacao2 + ",#" + hrCriacao + "#," + datAtivacao2 + ",#" + hrAtivacao + "#," + datContagem2 + ", #" + hrContagem + "#," + contador + "," + datPostagem2 + ",#" + hrPostagem + "#,'" + uc + "', " + tipoDep + " )"; try { AccessBD.insert_Delete_Update(SQL); } catch (OleDbException) { contEx += 1; } catch (Exception ex) { MessageBox.Show("Erro desconhecido, contate o administrador do sistema! n/n/ " + ex.Message, "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Error); } BarraProgresso.Value = cont; lblStripPorcent.Text = Math.Round(((decimal)cont / (decimal)dgvPos.RowCount) * 100, 1).ToString() + "%"; if (produto == "") { produto = "0"; } if (cont == dgvPos.RowCount - 1) { // Se a thread já finalizou, destrói a Progressbar BarraProgresso.Dispose(); lblStripSalvar.Dispose(); lblStripPorcent.Dispose(); if (contEx == 0) { MessageBox.Show("Inventários salvo com sucesso!!!", "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Não foi possível salvar " + contEx + " linhas!", "Importação de Inventários", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } txtUltimoInventario.Text = AccessBD.consultaScalar("SELECT DAT_post & ' ÀS ' & MAX(hr_post) AS hr_post FROM INVENTARIO WHERE (((INVENTARIO.[DAT_POST])=(SELECT Max(dat_POST) FROM INVENTARIO))) group by dat_post"); } //if } //for atualizaFirebase(); } ));//thread backgroundThread.Start(); }
//::Salva pos do DataGrid para o BD:: public void salvarPos() { int contador = 0; int datCont2 = 0; string posicao, vazia, bloqueioSaida, bloqueioEntrada, bloqueioInvent, tipoPos, unidadePeso, pesoMax, pesoOcupado, qtdUcs, tipoDep; DateTime datCont; AccessBD Conexao = new AccessBD(); Conexao.AbrirConexao(); Conexao.insert_Delete_Update("DELETE * FROM POSICAO"); ToolStripLabel lblStripSalvar = new ToolStripLabel(); lblStripSalvar.Text = "Salvando Posições:"; frmPrincipal.statusStrip1.Items.Add(lblStripSalvar); ToolStripProgressBar BarraProgresso = new ToolStripProgressBar(); BarraProgresso.Maximum = dgvPos.RowCount; frmPrincipal.statusStrip1.Items.Add(BarraProgresso); ToolStripLabel lblStripPorcent = new ToolStripLabel(); lblStripPorcent.Text = "0"; frmPrincipal.statusStrip1.Items.Add(lblStripPorcent); Thread backgroundThread = new Thread( new ThreadStart(() => { try { for (contador = 0; contador < dgvPos.RowCount; contador++) { posicao = dgvPos.Rows[contador].Cells[0].Value.ToString(); vazia = dgvPos.Rows[contador].Cells[1].Value.ToString(); bloqueioSaida = dgvPos.Rows[contador].Cells[2].Value.ToString(); bloqueioEntrada = dgvPos.Rows[contador].Cells[3].Value.ToString(); bloqueioInvent = dgvPos.Rows[contador].Cells[4].Value.ToString(); tipoPos = dgvPos.Rows[contador].Cells[5].Value.ToString(); qtdUcs = dgvPos.Rows[contador].Cells[6].Value.ToString(); pesoMax = dgvPos.Rows[contador].Cells[7].Value.ToString().Replace(",", "."); unidadePeso = dgvPos.Rows[contador].Cells[8].Value.ToString(); pesoOcupado = dgvPos.Rows[contador].Cells[9].Value.ToString().Replace(",", "."); //datCont2 = Convert.ToInt32(dgvPos.Rows[contador].Cells[10].Value); tipoDep = dgvPos.Rows[contador].Cells[11].Value.ToString(); if (dgvPos.Rows[contador].Cells[10].Value.ToString() == "") { // Se a data da contagem estiver vazia datCont2 = 0; } else { //Se não, converte a data para o formato do banco de dados datCont = DateTime.Parse(dgvPos.Rows[contador].Cells[10].Value.ToString()); datCont2 = Convert.ToInt32(datCont.Year.ToString() + string.Format("{0,2:00}", datCont.Month) + string.Format("{0,2:00}", datCont.Day)); } Conexao.insert_Delete_Update("INSERT INTO POSICAO (Posicao, vazia, bloqueio_saida, bloqueio_entrada, bloqueio_invent, tipo_posicao, qtd_uc, peso_max, uni_peso, peso_ocupado, dat_cont, tipo_dep) values ('" + posicao + "', '" + vazia + "','" + bloqueioSaida + "','" + bloqueioEntrada + "','" + bloqueioInvent + "','" + tipoPos + "'," + qtdUcs + ", " + pesoMax + ",'" + unidadePeso + "'," + pesoOcupado + ", " + datCont2 + ", " + tipoDep + ")"); BarraProgresso.Value = contador; lblStripPorcent.Text = Math.Round(((decimal)contador / (decimal)dgvPos.RowCount) * 100, 1).ToString() + "%"; if (contador == dgvPos.RowCount - 1) { // Se a thread já finalizou, destrói a Progressbar BarraProgresso.Dispose(); lblStripSalvar.Dispose(); lblStripPorcent.Dispose(); } } //for } // try catch (Exception ex) { MessageBox.Show("Parece que o arquivo não está no formato esperado. Verifique!!! /n" + ex, "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error); BarraProgresso.Dispose(); lblStripSalvar.Dispose(); lblStripPorcent.Dispose(); } } )); backgroundThread.Start(); }