Fórum Refresh DataSet tipado #7009

23/06/2009

0

Prezados; Como comentei em outros chamdos, estou desenvolvendo uma aplicação web utilizando o conceito de camadas, agora estou com um problema: em alguns casos após criar o meu DataSet (Wizard) faz-se necessário alterar a estrutura da minha tabela do banco de dados, e nestes casos preciso atualizar meu DataSet, sendo que não estou conseguindo fazer isso. Ex.: Tabela: tbAluno Campos: Nome, endereço, telefone. Criei meu DataSet utilizando a tabela acima. Após criar observei que preciso da filiação do aluno, então a minha tabela ficará assim: Tabela: tbAluno Campos: Nome, endereço, telefone, nome_pai, nome_mae. Agora preciso atualizar meu DataSet (Refresh), como faço isso? Indemberge
Indemberge Santos

Indemberge Santos

Responder

Posts

23/06/2009

Fabio Mans

Você tem que incluir o campo no Select e atualizar o DataSet. Você não gosta de codificar? Fabio
Responder

Gostei + 0

23/06/2009

Indemberge Santos

Fábio, tudo bem? Bem eu gosto muito de codificar, já programei muito em Clipper e ainda possuo uma aplicação rodando que foi desenvolvida usando esta linguagem com banco de dados dbase. Programo também em Vb6 e a conexão com o banco de dados é na mão, pelo menos eu não aprendi a fazer pelo wizard. O problema é que quando resolvi programar para web, aprendi o conceito de camadas em um curso que fiz, lá ensinaram a criar o DataSet pelo Wizard, e eu gostei, achei interessante. Então devido a este fato estou criando meus DataSets todos pelo Wizard, mas se existir um bom motivo para eu codificar eu mudo de método. Indemberge
Responder

Gostei + 0

23/06/2009

Fabio Mans

Olá eu acho importante, você pode criar seus próprios métodos que retornam DataTable ou um List<> para preencher seus controles.

Vou te ajudar.

Primeiro crie uma classe e adicione o métodos abaixo. Mude os itens em negrito para os seus dados.
Depois adicine uma GridView que chame este dataset e vamos ver se dar certo.


  public static DataSet NomeMetodo(int CategoriaID)  //Caso precise de parâmetros.
    {
        DataSet ds = new DataSet("Categoria");
        using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["cnnString"].ConnectionString))
        {
            string sql = "manual_Documentos_ListaDocumentosID"; //Nome da sua Prc.
            using (SqlCommand cmd = new SqlCommand(sql, connection))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@CategoriaID", CategoriaID);     //Se precisar de parâmetros          
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
            }
        }
        return ds;
    }




GridView1.DataSource = NomeMetodo(11);
GridView1.DataBind();


Caso não queira fazer o procedimento acima e deseje continuar utilizando o Wizard me fale, assim podemos continuar o chamado normalmente.

Fabio

Responder

Gostei + 0

23/06/2009

Indemberge Santos

Fábio;   Vou fazer um teste utilizando o exemplo que me enviou, gostei.   Uso atualmente em minha aplicação o ACCESS 2000 e pretendo mudar para o SQL EXPRESS, criando os DataSets da forma que me ensinou tenho mais liberdade e posso até pensar em usar o MySql.   Contudo na aplicação atual existem vários DataSets e várias query criadas que não posso abondonar, preciso cuidar delas.   Tenho uma consulta que faz uma pesquisa no meu banco de dados e retorna o nome dos alunos, o problema é que alguns alunos não são retornados para o meu grid e descobri que o problema esta no DataSet, acreditava que era devido as alterações na estrutura das tabelas, mas após corrigir o select contido no meu DataSet o problema persiste (fiz isso hoje após receber a sua orientação).   Amanhã vou Debugar a aplicação e vou ver em que linha esta dando o erro, e retorno.   Um abraço;   Indemberge
Responder

Gostei + 0

25/06/2009

Fabio Mans

Você vai achar bem melhor trabalhar assim, com o tempo você cria as suas classes, cria os métodos e pode contar comigo para te explicar.   Abraços  
Responder

Gostei + 0

26/06/2009

Devmedia

Indembergue,
a solução do consultor resolveu seu problema? podemos encerrar o chamado?
Responder

Gostei + 0

29/06/2009

Devmedia

Indembergue,
por falta de retorno estamos colocando o seu chamado como concluído.
Caso ainda tenha alguma dúvida sobre o assunto desse chamado, post aqi q o consultor voltará a lhe atender.
Responder

Gostei + 0

01/07/2009

Indemberge Santos

Prezados; Não respondi devido problemas na conexão com a internet aqui da empresa, usamos Net Vírtua...   Como passo esse código para VB.NET?   public static DataSet NomeMetodo(int CategoriaID)  //Caso precise de parâmetros.
    {
        DataSet ds = new DataSet("Categoria");
        using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["cnnString"].ConnectionString))
        {
            string sql = "manual_Documentos_ListaDocumentosID"; //Nome da sua Prc.
            using (SqlCommand cmd = new SqlCommand(sql, connection))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@CategoriaID", CategoriaID);     //Se precisar de parâmetros          
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
            }
        }
        return ds;
    }
Usuando o DataSet que estou criando pelo wizard faço assim em minha classe:   Public Overloads Function ObterAlunoCodigo(ByVal CodAluno As String) As DSAluno.tbAlunoDataTable
        Dim AlunoAdapter As New DSAlunoTableAdapters.tbAlunoTableAdapter
        'ObterAlunoCodigo é uma query que criei em meu DataSet, um select que trará os dados do aluno de         'acordo com o código do aluno fornecido.         Return AlunoAdapter.ObterAlunoCodigo(CodAluno)
End Function     Com respeito a atualização do DataSet, consegui resolver como me orientou, atualizei o meu select no DataSet tipado.   Obrigado.   Indemberge
Responder

Gostei + 0

01/07/2009

Fabio Mans

Olá sempre que você precisar converter utilize o link abaixo.

http://www.developerfusion.com/tools/convert/csharp-to-vb/
 Public Shared Function NomeMetodo(ByVal CategoriaID As Integer) As DataSet
     Dim ds As New DataSet("Categoria")
     Using connection As New SqlConnection(ConfigurationManager.ConnectionStrings("cnnString").ConnectionString)
         Dim sql As String = "manual_Documentos_ListaDocumentosID"
         'Nome da sua Prc.
         Using cmd As New SqlCommand(sql, connection)
             cmd.CommandType = CommandType.StoredProcedure
             cmd.Parameters.AddWithValue("@CategoriaID", CategoriaID)
             'Se precisar de parâmetros
             Dim da As New SqlDataAdapter(cmd)
             da.Fill(ds)
         End Using
     End Using
     Return ds
 End Function
Está conseguindo utilizar criando o dataset?

======================================================================

Prezados; Não respondi devido problemas na conexão com a internet aqui da empresa, usamos Net Vírtua...   Como passo esse código para VB.NET?


public static DataSet NomeMetodo(int CategoriaID)  //Caso precise de parâmetros.
    {
        DataSet ds = new DataSet("Categoria");
        using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["cnnString"].ConnectionString))
        {
            string sql = "manual_Documentos_ListaDocumentosID"; //Nome da sua Prc.
            using (SqlCommand cmd = new SqlCommand(sql, connection))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@CategoriaID", CategoriaID);     //Se precisar de parâmetros          
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
            }
        }
        return ds;
    }
Usuando o DataSet que estou criando pelo wizard faço assim em minha classe:   Public Overloads Function ObterAlunoCodigo(ByVal CodAluno As String) As DSAluno.tbAlunoDataTable
        Dim AlunoAdapter As New DSAlunoTableAdapters.tbAlunoTableAdapter
        'ObterAlunoCodigo é uma query que criei em meu DataSet, um select que trará os dados do aluno de         'acordo com o código do aluno fornecido.         Return AlunoAdapter.ObterAlunoCodigo(CodAluno)
End Function     Com respeito a atualização do DataSet, consegui resolver como me orientou, atualizei o meu select no DataSet tipado.   Obrigado.   Indemberge
Responder

Gostei + 0

04/07/2009

Devmedia

Indembergue,
a resposta do consultor foi suficiente? Podemos encerrar o chamado?
Responder

Gostei + 0

06/07/2009

Devmedia

Indembergue,
por falta de retorno estamos encerrando o chamado. Caso ainda tenha dúvidas sobre o assunto desse post, por favor, volte a postar aqui mesmo que o consultor voltará a lhe antender.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar