none
Como carregar um GridView usando o dataReader

    Pergunta

  • Olá companheiros, sou iniciante em vb.net e não estou consiguindo carregar o gridview usando o datareader, se alguem puder ajudar eu agradeço,
    Segue meu Codigo

     

    Private Sub cmdPesquisar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPesquisar.Click

     

    If rdbCNPJ.Checked = True Then

    CNPJForn = mskPesquisar.Text

    CNPJForn = Replace(CNPJForn,

    ".", "")

    CNPJForn = Replace(CNPJForn,

    "/", "")

    CNPJForn = Replace(CNPJForn,

    "-", "")

    Fornecedor =

    "''"

     

    Else

    CNPJForn =

    ""

    Fornecedor = mskPesquisar.Text

     

    End If

    Mycommand.Connection = ModConexao.Mysqlconn

    Mycommand.CommandText =

    "sp_BuscaFornecedor"

    Mycommand.CommandType = CommandType.StoredProcedure

    Mycommand.Parameters.Add(

    "v_RazaoSocial", MySqlDbType.String).Value = Fornecedor

    Mycommand.Parameters.Add(

    "v_CNPJ", MySqlDbType.String).Value = CNPJForn

    ModConexao.Mysqlconn.Open()

     

     

    rdr = ModConexao.Mycommand.ExecuteReader(CommandBehavior.SingleResult)

    rdr.Read()

     

    'Preencendo os campos com o datareader.

     

    If rdr.HasRows Then

    gridFornecedor.DataSource = rdr.GetString(

    "RazaoSocial")

    gridFornecedor.DataSource = rdr.GetString(

    "CNPJ")

     

    Else

    MsgBox(

    "NÆo foi encontrado FORNECEDOR com esta RAZÇO SOCIAL ou CNPJ", MsgBoxStyle.OkOnly, "Fornecedor nÆo encontrado")

     

    End If

    ModConexao.Mysqlconn.Close()

    rdr.Close()

     

    End Sub

    sábado, 13 de fevereiro de 2010 01:39

Respostas

  • Sim sim, eu não imaginei que vc estava usando o vb e não o asp.net(vb) heh.
    Mas aqui esta dois exemplo, tanto para dataset(grid) qto datareader(textbox):

    Só colocar sua storedprocedure ai pra funfar. Desculpa as desorganização dos exemplos, mas é so para te dar uma ideia.

    Bom amigo mas para te "da" uma luz mesmo visita esse camarada que é muito bom: http://www.macoratti.net/vbn_cobd.htm


     Private Sub datagr()
            Dim cnn As New SqlConnection(New sessao().connectionstring)
            Try
                Dim dataAdapter = New SqlDataAdapter("select * from tblcliente", cnn)

                Dim commandBuilder As New SqlCommandBuilder(dataAdapter)

                Dim table As New DataTable()
                dataAdapter.Fill(table)
                DataGridView1.DataSource = table

            Catch ex As SqlException
                MessageBox.Show(ex.Message)
            End Try
        End Sub

        Private Sub dr()
            Dim cnn As New SqlConnection(New sessao().connectionstring)
            Dim cmd As New SqlCommand("select * from tblcliente", cnn)
            Dim dr As SqlDataReader
            cnn.Open()
            dr = cmd.ExecuteReader()

            If dr.Read Then
                TextBox1.Text = dr.Item(0)
                TextBox2.Text = dr.Item(1)
            End If

            dr.Close()
            cnn.Close()
        End Sub
    • Marcado como Resposta Harley Araujo quinta-feira, 18 de fevereiro de 2010 11:55
    quarta-feira, 17 de fevereiro de 2010 03:03

Todas as Respostas

  • O DataSource do gridview deve ser o SqlDataReader.

    GridView1.DataSource = cmd.ExecuteReader();
    GridView1.DataBind();

    Abraço
    sábado, 13 de fevereiro de 2010 13:53
  • Private Sub carregaDG()
            Dim conn As New SqlConnection(New sessao().connectionstring)
            Try
                conn.Open()
                Dim sql As String = ("select * from tblCliente")
                Dim cmd As New SqlCommand(sql, conn)
                Dim dr As SqlDataReader
                dr = cmd.ExecuteReader()

                GridView1.DataSource = dr
                GridView1.DataBind() <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

                dr.Close()
                conn.Close()
            Catch ex As Exception
                Throw New Exception(ex.Message)
            End Try
        End Sub
    sábado, 13 de fevereiro de 2010 13:53
  • Tentei fazer conforme seu exemplo, mas não deu certo, será que é porque meu projeto é em WindowsForms? quando executo o codigo o gridview fica em branco.

    Abraço

    domingo, 14 de fevereiro de 2010 16:13
  • Gostaria de salientar que as colunas da minha grid está com os nomes "RAZAOSOCIAL", "CN PJ"
    domingo, 14 de fevereiro de 2010 16:17
  • Obrigado Flavio, mas tentei com o exemplo que vc mandou o não consegui, será que é porque estou usando windows forms.


    OBS: As colunas da minha grid estão com os nomes "RAZAOSOCIAL", "CNPJ" 

    Obrigado.

    domingo, 14 de fevereiro de 2010 16:19
  • Vale salientar que minha consulta retorna duas colunas ("RazaoSocial","CNPJ") quando atribuo o valor do datareader a um textbox conforme o exemplo abaixo dá certo, mas quando tento atribuir a um gridview dá errado.
    Abraço

    Mycommand.Connection = ModConexao.Mysqlconn

    Mycommand.CommandText =

    "sp_BuscaFornecedor"

    Mycommand.CommandType = CommandType.StoredProcedure

    Mycommand.Parameters.Add(

    "v_RazaoSocial", MySqlDbType.String).Value = Fornecedor

    Mycommand.Parameters.Add(

    "v_CNPJ", MySqlDbType.String).Value = CNPJForn

    ModConexao.Mysqlconn.Open()

     

    rdr = ModConexao.Mycommand.ExecuteReader(CommandBehavior.SingleResult)

    rdr.Read()

     

    'Preencendo os campos com o datareader.

     

    If rdr.HasRows Then
    textbox1.text= rdr("RazaoSocial")
    textbox2.text= rdr("CNPJ")
    Else

    MsgBox(

    "NÆo foi encontrado FORNECEDOR com esta RAZÇO SOCIAL ou CNPJ", MsgBoxStyle.OkOnly, "Fornecedor nÆo encontrado")

     

    End If

    ModConexao.Mysqlconn.Close()

    rdr.Close()

    domingo, 14 de fevereiro de 2010 16:31
  • Sim sim, eu não imaginei que vc estava usando o vb e não o asp.net(vb) heh.
    Mas aqui esta dois exemplo, tanto para dataset(grid) qto datareader(textbox):

    Só colocar sua storedprocedure ai pra funfar. Desculpa as desorganização dos exemplos, mas é so para te dar uma ideia.

    Bom amigo mas para te "da" uma luz mesmo visita esse camarada que é muito bom: http://www.macoratti.net/vbn_cobd.htm


     Private Sub datagr()
            Dim cnn As New SqlConnection(New sessao().connectionstring)
            Try
                Dim dataAdapter = New SqlDataAdapter("select * from tblcliente", cnn)

                Dim commandBuilder As New SqlCommandBuilder(dataAdapter)

                Dim table As New DataTable()
                dataAdapter.Fill(table)
                DataGridView1.DataSource = table

            Catch ex As SqlException
                MessageBox.Show(ex.Message)
            End Try
        End Sub

        Private Sub dr()
            Dim cnn As New SqlConnection(New sessao().connectionstring)
            Dim cmd As New SqlCommand("select * from tblcliente", cnn)
            Dim dr As SqlDataReader
            cnn.Open()
            dr = cmd.ExecuteReader()

            If dr.Read Then
                TextBox1.Text = dr.Item(0)
                TextBox2.Text = dr.Item(1)
            End If

            dr.Close()
            cnn.Close()
        End Sub
    • Marcado como Resposta Harley Araujo quinta-feira, 18 de fevereiro de 2010 11:55
    quarta-feira, 17 de fevereiro de 2010 03:03
  • Muito obrigado baseado nos exemplos que vc´s passaram deu certo.

     

    Oiniciante

    quinta-feira, 18 de fevereiro de 2010 19:54
  • Olá Oiniciante,

    Para preencher o grid sem utilizar um dataset procedo da seguinte forma :

     

     BindingSource1.DataSource = cm.ExecuteReader
     DataGridView1.DataSource = BindingSource1

     

    E o grid será preenchido automaticamente com os campos informados no select.

     

    Abraços,

     

    Michele

     


    MIchele
    terça-feira, 14 de setembro de 2010 14:39