none
Exibir dados em datagrid c# RRS feed

  • Pergunta

  • Bom dia gente ,

    sou novo em c# estou tentando desenvolver um sistema de venda , tenho um data grid que importa dados da tabela de produto 

    só que quando vou inserir o segundo produto o primeiro produto sai do grid , como se fosse uma pesquisa ... como faço para inserir os produtos um a um sem  excluir o anterior ? eu uso o banco de dados oracle ... 

    esse é a minha string de conexão ...  creio que seja algo com data reader ou dataset 

             

    public static OracleConnection AbreBanco()

      {
                string StringConexao = "DATA SOURCE=localhost:1521/xe;USER ID=ELIELTON;Password=160612";


                try
                {
                    OracleConnection conn = new OracleConnection(StringConexao);
                    conn.Open();
                    return conn;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            public void FecharBanco(OracleConnection conn)
            {
                try
                {
                    if (conn.State == ConnectionState.Open)
                    { conn.Close(); }
                }
                catch (Exception e)
                { throw e; }

            }

            public DataSet RetornaDataset(string strquery)
            {
                OracleConnection conn;
                conn = AbreBanco();
                try
                {
                    DataSet ds = new DataSet();
                    OracleCommand cmdComando = new OracleCommand(strquery, conn);
                    OracleDataAdapter da = new OracleDataAdapter(cmdComando);
                    cmdComando.BindByName = true;
                    da.Fill(ds);
                    return ds;
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    FecharBanco(conn);
                }

            }
            public OracleDataReader RetornaDataReader(string strquery)
            {
                try
                {
                    OracleDataReader dr;
                    OracleCommand sqlComando = new OracleCommand(strquery, AbreBanco());
                    sqlComando.BindByName = true;
                    dr = sqlComando.ExecuteReader();
                    return dr;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            public void ExecutaComando(string strquery)
            {
                OracleConnection conn;
                conn = AbreBanco();
                try
                {
                    OracleCommand sqlComm = new OracleCommand(strquery, conn);
                    sqlComm.BindByName = true;
                    sqlComm.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                    throw e;
                }


    domingo, 12 de junho de 2016 15:59

Respostas

  • Boa noite. 

    Esse método seu que retorna um DataSet, coloque um nome para a tabela do seu dataset, abaixo eu colei o seu código com a linha. Depois no seu formulário ou classe você chama esse método e popula o datagrid com o retorno dele que é um dataset:

    public DataSet RetornaDataset(string strquery)
            {
                OracleConnection conn;
                conn = AbreBanco();
                try
                {
                    DataSet ds = new DataSet();
                    OracleCommand cmdComando = new OracleCommand(strquery, conn);
                    OracleDataAdapter da = new OracleDataAdapter(cmdComando);
                    cmdComando.BindByName = true;
                   // da.Fill(ds); Coloque a linha abaixo 
    	          da.Fill(ds, "NOME_TABELA_DATA_SET");
                    return ds;
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    FecharBanco(conn);
                }
    
            }
    
    //Depoois no seu formulário:
     dataGrid.DataSource = Objeto.RetornaDataset();
     dataGrid.DataMember = "NOME_TABELA_DATA_SET";


    • Editado Paulo_Galego domingo, 12 de junho de 2016 23:02
    • Marcado como Resposta Elelton segunda-feira, 13 de junho de 2016 11:39
    domingo, 12 de junho de 2016 23:01

Todas as Respostas

  • Como você insere? Com um botão se for passe o código.
    domingo, 12 de junho de 2016 22:00
  • Boa noite. 

    Esse método seu que retorna um DataSet, coloque um nome para a tabela do seu dataset, abaixo eu colei o seu código com a linha. Depois no seu formulário ou classe você chama esse método e popula o datagrid com o retorno dele que é um dataset:

    public DataSet RetornaDataset(string strquery)
            {
                OracleConnection conn;
                conn = AbreBanco();
                try
                {
                    DataSet ds = new DataSet();
                    OracleCommand cmdComando = new OracleCommand(strquery, conn);
                    OracleDataAdapter da = new OracleDataAdapter(cmdComando);
                    cmdComando.BindByName = true;
                   // da.Fill(ds); Coloque a linha abaixo 
    	          da.Fill(ds, "NOME_TABELA_DATA_SET");
                    return ds;
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    FecharBanco(conn);
                }
    
            }
    
    //Depoois no seu formulário:
     dataGrid.DataSource = Objeto.RetornaDataset();
     dataGrid.DataMember = "NOME_TABELA_DATA_SET";


    • Editado Paulo_Galego domingo, 12 de junho de 2016 23:02
    • Marcado como Resposta Elelton segunda-feira, 13 de junho de 2016 11:39
    domingo, 12 de junho de 2016 23:01
  • Boa dia paulo ,

    Agradeço pela sua ajuda , fiz isso e deu certo 

    Obrigado mesmo , salvou meu tcc!!!!

    segunda-feira, 13 de junho de 2016 11:40
  • Boa tarde, por nada. Boa sorte!!!!!
    segunda-feira, 13 de junho de 2016 17:46
  • ITB?

    terça-feira, 14 de junho de 2016 19:49