Jump to content
Israel mfwamba

Bloqueio no fim da leitura da Base de Dados

Recommended Posts

Israel mfwamba

Oi Pessoal,

Eu tenho um pequeno projeto que já acabei de conceber mas há um por menor que encomenda me bastante. Qual é o problema? Eu tenho dois buttons: "btnMandar" e "btnSair". Quando eu faz um click no botao "btnMandar" os números desfilao um por um no combobox "cbxMsg" (todos números carregados no combobox "cbxMsg" sao proveniente da Base de Dados). Curiosamente quando essa leitura de dados acaba. O sistema bloqueia e nao há como sair clicando o botao "btnSair" porque todo fica parado. É isso que está acontecer. Como posso fazer para deixar sempre ativado o botao "btnSair" para a saída do sistema sem passar toda hora com a combinação "ctrl" + "alt" + "delete".

Ai está os meus códigos:

private void btnMandar_Click(object sender, EventArgs e)
        {
            Control p;
            p = ((Button)sender).Parent;
            p.SelectNextControl(ActiveControl, true, true, true, true);
            int ia = 1;


            conn.Open();
            comm = new OleDbCommand("SELECT DISTINCT numeros FROM BD", conn);
            OleDbDataReader sdr = comm.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Load(sdr);
            cbxSMSSending.DisplayMember = "numeros";
            cbxSMSSending.DroppedDown = true;
            cbxSMSSending.DataSource = dt;
            cbxSMSSending.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            cbxSMSSending.AutoCompleteSource = AutoCompleteSource.ListItems;

            conn.Close();

            ///////////////////////doesnt allow repeat item in combobox////////////

            for (int i = 0; i < cbxMsg.Items.Count; i++)
            {
                for (int y = 0; y < cbxMsg.Items.Count; y++)
                {
                    if (y != i && cbxMsg.Items[i].ToString() == cbxMsg.Items[y].ToString())
                    {
                        //comboBox1.Items.RemoveAt(i);
                        break;
                    }
                }
            }

            ///////////////////////////////// First item

            //comboBox1.SelectedIndex = 0;

            ///////////////////////////////// Delete first item

            String strConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BlessFive\BlessFive\App_Datas\blessfive.mdb;Persist Security Info=False";
            string query = "delete from BD where numbers='" + cbxMsg.Text + "';";

            OleDbConnection conDatabase = new OleDbConnection(strConnection);
            OleDbCommand cmdDatabase = new OleDbCommand(query, conn);
            OleDbDataReader myReader;

            try
            {
                conn.Open();
                myReader = cmdDatabase.ExecuteReader();
                //MessageBox.Show("Dados excluidos com exito. Obrigado!");
                while (myReader.Read())
                {
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                conn.Close();
            }

            ///////////////////////////////// Refresh Database and Combobox

            OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BlessFive\BlessFive\App_Datas\blessfive.mdb;Persist Security Info=False");
            con.Open();
            OleDbCommand cmd = new OleDbCommand("select numbers from BD", con);
            OleDbDataAdapter SDA = new OleDbDataAdapter();
            SDA.SelectCommand = cmd;
            DataTable DT = new DataTable();
            SDA.Fill(DT);
            cbxSMSSending.DataSource = DT;
            con.Close();
            Application.DoEvents();
            ia++;
            int milliseconds = 2000;
            Thread.Sleep(milliseconds);
            //button6.PerformClick();
            //btnEnvoiSMS_PrincipalEntry.PerformClick();   //Trigger click event
            //btnAffiche.PerformClick();

            ////////////////////////

            using (OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BlessFive\BlessFive\App_Datas\blessfive.mdb;Persist Security Info=False"))
            using (OleDbCommand comm = new OleDbCommand("DELETE from BD", cnn))
            {
                cnn.Open();
                cmd.ExecuteNonQuery();
            }

 

Share this post


Link to post
Share on other sites
nelsonr

Bom dia Israel,

a melhor forma de verificares onde está a parar é executares a aplicação em modo debug.

Colocas um breakpoint algures ai dentro desse metodo.
Se a aplicação chegar a esse breakpoint, continuas a execução linha a linha e verificar se chega ao fim do método.

Se chegar ao fim, o problema pode não ser neste metodo.
 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.