none
ProgressBar RRS feed

  • Pergunta

  • Boa tarde galera,

    tenho a rotina abaixo, que executa uma procedure no banco de dados e depois faz uma varredura de dados através de um for e inseri em uma outra tabela, e essa rotina as vezes demora um pouco, então pensei de colocar um progressbar para o usuário ter ideia do tempo.

    Como faço isso?

    Tenho que colocar minha rotina dentro do timer, ou do progressbar, ou em botão da forma que está hoje e chamo o progressbar?

    or (int a = 0; a <= dgvExecPlan.Rows.Count - 1; a++)
                {
                    txtCodProdFicTec.Text = dgvExecPlan.Rows[a].Cells[0].Value.ToString();
                    txtQtd.Text = dgvExecPlan.Rows[a].Cells[1].Value.ToString();

                    SqlConnection conn = new SqlConnection(@"SERVER=SERVER;DATABASE=TESTE_PCP_1;UID=sa;PASSWORD=634zambow6pic08;");

                    string dataIni = DataCalcFicTec.Text;
                    string data1 = dataIni.Substring(3, 2) + "-" + dataIni.Substring(0, 2) + "-" + dataIni.Substring(6, 4);

                    SqlDataAdapter sda = new SqlDataAdapter("EXECUTE USER_NECESS_COMPRA '1', '" + txtCodProdFicTec.Text + "', '" + data1 + "', '" + txtQtd.Text + "', 'Sim'", conn);
                    DataTable dt = new DataTable();
                    sda.Fill(dt);
                    dgvExpFicTec.DataSource = dt;


                    {
                        SqlConnection conn1 = new SqlConnection(@"SERVER=SERVER;DATABASE=TESTE_PCP_1;UID=sa;PASSWORD=634zambow6pic08;");

                        string sql = "INSERT INTO USER_COMP_MAT_PRI(ProdCodEstr, ProdNome, ProdUnidMed, FicTecProdQtd) VALUES (@ProdCodEstr, @ProdNome, @ProdUnidMed, @FicTecProdQtd)";


                        for (int i = 0; i <= dgvExpFicTec.Rows.Count - 1; i++)

                            try
                            {

                                {

                                    SqlCommand comando = new SqlCommand(sql, conn1);
                                    comando.Parameters.Clear();
                                    comando.Parameters.AddWithValue("ProdCodEstr", dgvExpFicTec.Rows[i].Cells[0].Value);
                                    comando.Parameters.AddWithValue("ProdNome", dgvExpFicTec.Rows[i].Cells[1].Value);

                                    comando.Parameters.AddWithValue("ProdUnidMed", dgvExpFicTec.Rows[i].Cells[3].Value);
                                    comando.Parameters.AddWithValue("FicTecProdQtd", dgvExpFicTec.Rows[i].Cells[4].Value);



                                    conn1.Open();
                                    comando.ExecuteNonQuery();


                                }

                                conn1.Close();
                            }


                            finally
                            {


                                SqlDataAdapter sda1 = new SqlDataAdapter("select ProdCodEstr, (select ProdNome FROM PRODUTO WITH(NOLOCK) WHERE ProdCodEstr = USER_COMP_MAT_PRI.ProdCodEstr) as ProdNome, ProdUnidMed 'UnidMed', sum(FicTecProdQtd) as FicTecProdQtd from USER_COMP_MAT_PRI WITH(NOLOCK) where ProdNome not like '%MÃO DE OBRA%' and ProdCodEstr like '%" + txtFamilia.Text + "%' group by ProdCodEstr, ProdUnidMed ORDER BY ProdCodEstr", conn1);
                                DataTable dt1 = new DataTable();
                                sda1.Fill(dt1);
                                dgvCompMatPri.DataSource = dt1;
                                conn1.Close();

                            }

    Desde já Grato!

    segunda-feira, 2 de maio de 2016 19:37

Respostas

Todas as Respostas