none
Ajuda importar para excel RRS feed

  • Pergunta

  • Boa tarde a todos,

    Estou com um pequeno problema para criar uma função que importe os valores da minha base de dados em MySQL para excel.

    O problema é o seguinte, já tenho o programa a fazer a importação dos valores que quero e a funcionar correctamente.

    O meu problema agora é em conseguir marcar na base de dados os campos que já foram exportados para que isso não volte a acontecer.

    O código que tenho é o seguinte e o campo que devo por a 1 quando for feita a exportação é o exportado que por definição está a 0.

     public void btnExportar_Click(object sender, EventArgs e)
            {
              

                string caminho = txtNomeArquivoXLS.Text;
                using (StreamWriter sw = File.CreateText(caminho))
                {
                   
                    //ligação à base de dados
                    string MyConString =

                    "DRIVER={MySQL ODBC 5.1 Driver};" +
                    "SERVER=localhost;" +
                    "DATABASE=buscamind;" +
                    "UID=root;" +
                    "PASSWORD=;" +
                    "OPTION=3";

                    string ora_string = "teste";
                    
                    int i=0;
                    int auxdata1;
                    int auxdata2;
                    string teste1;
                    string teste2;
                    OdbcConnection MyConnection = new OdbcConnection(MyConString);
                    blnConnectDB = true;
                    if (radioTodos.Enabled == true && radioDatas.Enabled == false)
                    {
                        string ora_string2 = " where exportado=0";
                        string ora_string1 = "SELECT * FROM clientes";
                        ora_string = ora_string1 + ora_string2;
                      
                    }
                    if (radioDatas.Enabled == true && radioTodos.Enabled == false)
                    {
                        teste1 = printData1.Text;
                        teste2 = printData2.Text;
                        string ora_string5 = " and exportado = 0";
                        string ora_string4 = " and data <" + teste2;
                        string ora_string3 = "SELECT * FROM `clientes` WHERE data >= " + teste1;
                        ora_string = ora_string3 + ora_string4 + ora_string5;
                        //ora_string = String.Concat(ora_string1, ora_string2, ora_string3);
                    }

                        //if (radioTodos.Enabled == true)
                   
                        //OdbcConnection cmd= new OdbcCommand("SELECT * FROM "+txtTable.Text,MyConnection);
                        //string ora_string = ("SELECT * FROM " + txtTable.Text);
                   
                     OdbcCommand MyCommand = new OdbcCommand(ora_string, MyConnection);
                     try
                     {
                            MyCommand = new OdbcCommand(ora_string, MyConnection);
                            MyConnection.Open();
                            OdbcDataReader reader = MyCommand.ExecuteReader();
                            while (reader.Read())
                            {
                                MyCommand = new OdbcCommand(ora_string, MyConnection);
                                sw.WriteLine(reader["id_cliente"].ToString() + "\t" + reader["nome"].ToString() + "\t" + reader["morada"].ToString() + "\t" + reader["codigo"].ToString());
                           
                            }
                            MessageBox.Show("Arquivo" + caminho + "criado com sucesso.", Inforamação);
                          
                           // MessageBox.Show("Arquivo" + caminho + "criado com sucesso.");
                           
                     }
                     catch (Exception excpt)
                     {
                        MessageBox.Show(excpt.Message, "Informação");
                     }

     

    Agradeço a todos a ajudo que me possam dar.

    Cmps.

    Fábio

    segunda-feira, 13 de setembro de 2010 12:53

Respostas

  • Já resolvi o meu problema.

    Eis a solução.

     public void btnExportar_Click(object sender, EventArgs e)
            {
              

                string caminho = txtNomeArquivoXLS.Text;
                using (StreamWriter sw = File.CreateText(caminho))
                {
                   
                    //ligação à base de dados
                    string MyConString =

                    "DRIVER={MySQL ODBC 5.1 Driver};" +
                    "SERVER=localhost;" +
                    "DATABASE=buscamind;" +
                    "UID=root;" +
                    "PASSWORD=;" +
                    "OPTION=3";

                    string ora_string = "teste";
                    
                    int i=0;
                    int auxdata1;
                    int auxdata2;
                    string teste1;
                    string teste2;
                    OdbcConnection MyConnection = new OdbcConnection(MyConString);
                    blnConnectDB = true;
                    if (radioTodos.Enabled == true && radioDatas.Enabled == false)
                    {
                        string ora_string2 = " where exportado=0";
                        string ora_string1 = "SELECT * FROM clientes";
                        ora_string = ora_string1 + ora_string2;
                      
                    }
                    if (radioDatas.Enabled == true && radioTodos.Enabled == false)
                    {
                        teste1 = printData1.Text;
                        teste2 = printData2.Text;
                        string ora_string5 = " and exportado = 0";
                        string ora_string4 = " and data <" + teste2;
                        string ora_string3 = "SELECT * FROM `clientes` WHERE data >= " + teste1;
                        ora_string = ora_string3 + ora_string4 + ora_string5;
                        //ora_string = String.Concat(ora_string1, ora_string2, ora_string3);
                    }

                        //if (radioTodos.Enabled == true)
                   
                        //OdbcConnection cmd= new OdbcCommand("SELECT * FROM "+txtTable.Text,MyConnection);
                        //string ora_string = ("SELECT * FROM " + txtTable.Text);
                   
                     OdbcCommand MyCommand = new OdbcCommand(ora_string, MyConnection);
                     try
                     {
                            MyCommand = new OdbcCommand(ora_string, MyConnection);
                            MyConnection.Open();
                            OdbcDataReader reader = MyCommand.ExecuteReader();
                           
                            while (reader.Read())
                            {
                               
                                MyCommand = new OdbcCommand(ora_string, MyConnection);
                                int aux;
                                aux = Convert.ToInt16(reader["exportado"]);
                                if (aux == 0)
                                {
                                    OdbcDataReader reader2 = MyCommand.ExecuteReader();
                                    string ora_string_update = "UPDATE clientes SET exportado = 1 where id_cliente = " +reader["id_cliente"].ToString();
                                    while (reader2.Read())
                                    {
                                        MyCommand = new OdbcCommand(ora_string_update, MyConnection);
                                        MyCommand.ExecuteNonQuery();
                                    }
                                    sw.WriteLine(reader["id_cliente"].ToString() + "\t" + reader["nome"].ToString() + "\t" + reader["morada"].ToString() + "\t" + reader["codigo"].ToString());

                                }
                           
                            }
                            MessageBox.Show("Arquivo " + caminho + " criado com sucesso.", "Informação");
                          
                           // MessageBox.Show("Arquivo" + caminho + "criado com sucesso.");
                           
                     }
                     catch (Exception excpt)
                     {
                        MessageBox.Show(excpt.Message);
                     }

     

    Cmps

    segunda-feira, 13 de setembro de 2010 14:06