none
Ajuda em Class para mostrar Resultado dataset RRS feed

  • Pergunta

  • Meu projeto é da seguinte forma tenho duas Class uma para conexao e outra quero criar o data set publico para ele executar comando SQL
    é armazenar em uma variavel que eu possa recuperar com o dataGrird do form.


    Class conecxao
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using MySql.Data.MySqlClient;
    using System.Windows.Forms;
    using System.Data;
    namespace CrmVolks
    {
      public  class StringConect1
        {
            private MySqlConnection conect;
            public MySqlConnection Getconect()
            {
                return conect;
            }
    
          
            public void abreconexao()
            {
    
                try{
    
                conect = new MySqlConnection("server=192.168.2.25;user id=root; " + "password=1234; database=Central; pooling=false");
    
                
                    if (conect.State != ConnectionState.Open)
                        {
                            conect.Open();
                            
                        }
                    }
                    catch (MySqlException ex)
                    {
                        MessageBox.Show("Erro ao conectar ao servidor: " +
                          ex.Message);
                    }
                
                }
               
            public void fecharconecxao()
            {
                conect.Close();
                conect.Dispose();
            }
    
        }
    }
    
       Para conectar faço 
    StringConect1 conec = new StringConect1();<br/><br/>conec.abreconexao();
    

     Até aqui tudo bem tipo quero fazer uma Class tipo  DataSet ou DataSource public para executar comandos SQL retornando em um Datasource para
     mostrar no grid do form. 

    quinta-feira, 15 de dezembro de 2011 19:45

Respostas

  • Segue um exemplo bem simples.

    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Data;
    using System.Text;
    
    namespace EF_3._5_Console
    {
        public class Util
        {
            private SqlConnection conexao;
    
            public SqlConnection Conexao
            {
                get { return conexao; }
                set { conexao = value; }
            }
    
            public Util() { }
    
            public Util(SqlConnection conexao)
            {
                this.conexao = conexao;
            }
    
            public DataSet GerarDataSet(string strSQL)
            {
                SqlDataAdapter da = GerarDataAdapter(strSQL);
                DataSet dataSet = new DataSet();
                da.Fill(dataSet);
    
                conexao.Dispose();
    
                return dataSet;
            }
    
            public DataSet GerarDataSet(SqlCommand command)
            {
                SqlDataAdapter da = GerarDataAdapter(command);
                DataSet dataSet = new DataSet();
                da.Fill(dataSet);
    
                conexao.Dispose();
    
                return dataSet;
            }
    
            private SqlDataAdapter GerarDataAdapter(string strSQL)
            {
                SqlDataAdapter da = new SqlDataAdapter(strSQL, conexao);
                return da;
            }
    
            private SqlDataAdapter GerarDataAdapter(SqlCommand objCommand)
            {
                objCommand.Connection = conexao;
                SqlDataAdapter da = new SqlDataAdapter(objCommand);
    
                return da;
            }
        }
    }
    
    



    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    • Sugerido como Resposta Pedro Henrique Silva segunda-feira, 19 de dezembro de 2011 00:47
    • Marcado como Resposta Googleinurl segunda-feira, 19 de dezembro de 2011 18:15
    quinta-feira, 15 de dezembro de 2011 20:08
  •     conec.Conexao = connString;
              MySqlCommand sql = new MySqlCommand("select * from mailling_v");

    falta fazer referencia da conecao no select:MySqlCommand sql = new MySqlCommand("select * from mailling_v",   conec.Conexao);

    One word frees us of all the weight and pain of life: that word is love.
    • Marcado como Resposta Googleinurl segunda-feira, 19 de dezembro de 2011 18:15
    sexta-feira, 16 de dezembro de 2011 16:32
    Moderador
  • Um dataSet vai te retornar o que? Geralmente um conjunto de tabelas. O comum é usar DataTable quase se tem apenas 1 tabela.

    Pelo seu código me parece que você quer mostrar apenas 1 valor em um campo texto. É isto? Se for não tem que usar dataSet, dataTable e sim um ExecuteEscalar.

    Para mostrar todos os dados do dataSet no grid basta apenas apontar o dataSoruce.

    dataGrid.DataSource = seuDataSet.Tables[0]

    Tente.


    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    domingo, 18 de dezembro de 2011 23:54
  • Apenas complementando:

     

    	  MySqlConnection connString = new MySqlConnection("server=192.168.2.8;user id=root; " + "password=232559; database=Mi8ra; pooling=false");
              conec.Conexao = connString;
              MySqlCommand sql = new MySqlCommand("select * from mailling_v");
              //conec.GerarDataSet(sql);
              dataGridView1.DataSource = conec.GerarDataSet(sql).Tables[0];

    Abraço.

     


    Pedro Henrique
    segunda-feira, 19 de dezembro de 2011 00:52

Todas as Respostas

  • Segue um exemplo bem simples.

    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Data;
    using System.Text;
    
    namespace EF_3._5_Console
    {
        public class Util
        {
            private SqlConnection conexao;
    
            public SqlConnection Conexao
            {
                get { return conexao; }
                set { conexao = value; }
            }
    
            public Util() { }
    
            public Util(SqlConnection conexao)
            {
                this.conexao = conexao;
            }
    
            public DataSet GerarDataSet(string strSQL)
            {
                SqlDataAdapter da = GerarDataAdapter(strSQL);
                DataSet dataSet = new DataSet();
                da.Fill(dataSet);
    
                conexao.Dispose();
    
                return dataSet;
            }
    
            public DataSet GerarDataSet(SqlCommand command)
            {
                SqlDataAdapter da = GerarDataAdapter(command);
                DataSet dataSet = new DataSet();
                da.Fill(dataSet);
    
                conexao.Dispose();
    
                return dataSet;
            }
    
            private SqlDataAdapter GerarDataAdapter(string strSQL)
            {
                SqlDataAdapter da = new SqlDataAdapter(strSQL, conexao);
                return da;
            }
    
            private SqlDataAdapter GerarDataAdapter(SqlCommand objCommand)
            {
                objCommand.Connection = conexao;
                SqlDataAdapter da = new SqlDataAdapter(objCommand);
    
                return da;
            }
        }
    }
    
    



    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    • Sugerido como Resposta Pedro Henrique Silva segunda-feira, 19 de dezembro de 2011 00:47
    • Marcado como Resposta Googleinurl segunda-feira, 19 de dezembro de 2011 18:15
    quinta-feira, 15 de dezembro de 2011 20:08
  • @Paulo bom trabalgo cara...

     


    One word frees us of all the weight and pain of life: that word is love.
    quinta-feira, 15 de dezembro de 2011 22:13
    Moderador
  • Mil desculpas pela minha falta de conhecimento...
    Mais como eu usuario a void no meu form...? 

     

    Algo assim ??


     MySqlConnection connString = new MySqlConnection("server=192.168.2.9;user id=root; " + "password=2323189; database=Mira; pooling=false");

              conec.Conexao = connString;

              conec.GerarDataSet("select * from mailling_v");

     

     

    como eu incluo o valor no meu datagrid 

    • Editado Googleinurl sexta-feira, 16 de dezembro de 2011 13:18
    sexta-feira, 16 de dezembro de 2011 12:41
  • Não entendi Cleiton. Você não sabe como usar, é isto?

    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    sexta-feira, 16 de dezembro de 2011 12:51
  • To fazendo da seguinte forma


     MySqlConnection connString = new MySqlConnection("server=192.168.2.8;user id=root; " + "password=232559; database=Mi8ra; pooling=false");
              conec.Conexao = connString;
              MySqlCommand sql = new MySqlCommand("select * from mailling_v");
              //conec.GerarDataSet(sql);
    
              dataGridView1.DataSource = conec.GerarDataSet(sql);
    

     Mais não me retorna valores no meu grid estou fazendo errado ?
    sexta-feira, 16 de dezembro de 2011 13:55
  • Cleiton,

    Coloque um breakPoint lá no método GerarDataSet. Verifique o tal de linhas (ds.Tables[0].Rows.Count).


    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    sexta-feira, 16 de dezembro de 2011 14:09
  •     conec.Conexao = connString;
              MySqlCommand sql = new MySqlCommand("select * from mailling_v");

    falta fazer referencia da conecao no select:MySqlCommand sql = new MySqlCommand("select * from mailling_v",   conec.Conexao);

    One word frees us of all the weight and pain of life: that word is love.
    • Marcado como Resposta Googleinurl segunda-feira, 19 de dezembro de 2011 18:15
    sexta-feira, 16 de dezembro de 2011 16:32
    Moderador
  • Tipow no RichTextBox consigo recuperar os dados do dataset mais para mostrar no grid como eu faria..


    la na class modifiquei o Geraset

    <br/>
    
    public RichTextBox texto2 = new RichTextBox();
    
    public DataSet GerarDataSet(string strSQL)
                {
                    MySqlDataAdapter da = GerarDataAdapter(strSQL);
                    DataSet dataSet = new DataSet();
    
                  da.Fill(dataSet);
    
                  foreach (DataTable thisTable in dataSet.Tables)
                  {
                      // For each row, print the values of each column.
                      foreach (DataRow myRow in thisTable.Rows)
                      {
                          foreach (DataColumn myCol in thisTable.Columns)
                          {
                           datascer +=  Convert.ToString(myRow[myCol]);
                           
                          
                          
    
                          }
                      }
                  }
                 texto2.Text = datascer; //meu RichTextBox <br/>
                   conexao.Dispose();
    
                    return dataSet;
                }
    


     la no form fazendo assim

     Conecta.Util conec = new Conecta.Util();
     
            private void Form2_Load(object sender, EventArgs e)
            {
          
                
    
                MySqlConnection connString = new MySqlConnection("server=192.168.2.9;user id=root; " + "password=2323189; database=Mira; pooling=false");
                string comandSql = "select * from mailling_v"; // string comand
                conec.Conexao = connString;
                conec.GerarDataSet(comandSql);
                richTextBox1.Text = conec.texto2.Text;  //incluindo resutado do set
           
    
            }
    
    


    como eu faço pra incluir no datagrid ? formatado.

     

     

    sexta-feira, 16 de dezembro de 2011 17:49
  • Alguem..???
    domingo, 18 de dezembro de 2011 02:38
  • Um dataSet vai te retornar o que? Geralmente um conjunto de tabelas. O comum é usar DataTable quase se tem apenas 1 tabela.

    Pelo seu código me parece que você quer mostrar apenas 1 valor em um campo texto. É isto? Se for não tem que usar dataSet, dataTable e sim um ExecuteEscalar.

    Para mostrar todos os dados do dataSet no grid basta apenas apontar o dataSoruce.

    dataGrid.DataSource = seuDataSet.Tables[0]

    Tente.


    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    domingo, 18 de dezembro de 2011 23:54
  • Apenas complementando:

     

    	  MySqlConnection connString = new MySqlConnection("server=192.168.2.8;user id=root; " + "password=232559; database=Mi8ra; pooling=false");
              conec.Conexao = connString;
              MySqlCommand sql = new MySqlCommand("select * from mailling_v");
              //conec.GerarDataSet(sql);
              dataGridView1.DataSource = conec.GerarDataSet(sql).Tables[0];

    Abraço.

     


    Pedro Henrique
    segunda-feira, 19 de dezembro de 2011 00:52