none
Como usar stored procedures no reportviewer usando o visual studio 2010 RRS feed

  • Pergunta

  • //o erro está nessa linha

    this.sp_RelVendasTableAdapter.Fill(this.AcompanhamentoVendaDataSet.sp_RelVendas);

    mensagem de erro:Error 4 No overload for method 'Fill' takes 1 arguments

    só consigo usar relatorios pegando os dados da tabela... mas quando uso stored procedure dá esse erro... eu usava o reportviewer no visual studio 2005 mas no 2010 está muito diferente e nao encontro nada relacionado.

     

    []'s,

    agradecido desde já =)

    domingo, 29 de janeiro de 2012 15:14

Respostas

  • Olá Alvaro,

    Tudo beleza?

    Veja se isto lhe ajuda:

    '* Declare objects
    Dim sqlCon As New SqlConnection
    Dim sqlCmd As New SqlCommand
    Dim myDS As New DataSet
    Dim sqlDA As New SqlDataAdapter
    
    '* Read connection string from application config file
    sqlCon.ConnectionString = WinLocalRepTest.My.Settings.NorthwindConnectionString
    
    '* Set up command object
    sqlCmd.Connection = sqlCon
    sqlCmd.CommandText = "up_Fill_Employee_Combo"
    sqlCmd.CommandType = CommandType.StoredProcedure
    
    '* Set up data adapter and fill dataset
    sqlDA.SelectCommand = sqlCmd
    sqlDA.Fill(myDS, "Employees")
    
    '* Name property of data set (first parameter below) MUST be the same name
    '* as the data set used at design time. While this name can be changed in the
    '* report xml specification it must be manually changed everywhere it occurs.
    '* Choose a meaningful name when the dataset is created.
    '* Note here that the dataset table can be established as a ReportDataSource
    Dim myRDS As New _
    Microsoft.Reporting.WinForms.ReportDataSource("NorthwindDataSet_up_Fill_Employee_Combo", myDS.Tables("Employees"))
    
    '* Clear out default datasource and add new one (with same structure).
    ReportViewer1.LocalReport.DataSources.Clear()
    ReportViewer1.LocalReport.DataSources.Add(myRDS)
    
    '* Show report automatically at form load
    Me.ReportViewer1.RefreshReport()
    

    Tirei deste exemplo: http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/f845d74d-3fbc-4601-bccb-3bb350099d32

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    • Marcado como Resposta Alvaro VDL Filho segunda-feira, 30 de janeiro de 2012 16:16
    segunda-feira, 30 de janeiro de 2012 11:22
    Moderador

  • Olá,

    O método Fill é responsável por popular o DataSet com os dados do banco de dados, e o parâmetro que aceita uma string, onde esta sendo passado o valor "Employees" indica com qual nome será criado uma DataTable dentro do DataSet. Esse parâmetro não é impactante.

    "NorthwindDataSet_up_Fill_Employee_Combo" é apenas o nome do DataSource que deve ser criado.

    Para utilizar parâmetros vc pode fazer assim:

        ReportParameter p1 = new ReportParameter("param1", _p1);
        ReportParameter p2 = new ReportParameter("param2", _p2);
        ReportParameter p3 = new ReportParameter("param3", _p3);
        ReportParameter p4 = new ReportParameter("param4", _p4);
         
        this.ReportViewer2.LocalReport.SetParameters(new ReportParameter[] {p1, p2, p3, p4});
    

    outro link:
    http://forums.asp.net/t/1240076.aspx/1


    []s!



    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    • Marcado como Resposta Alvaro VDL Filho segunda-feira, 30 de janeiro de 2012 16:15
    segunda-feira, 30 de janeiro de 2012 16:00
    Moderador

Todas as Respostas

  • Boa tarde, amigo !
    Aqui um artigo que explica, certinho:
    http://www.macoratti.net/08/03/vb8_rpv3.htm 

    Abraços... E se for útil marque como resposta :) 
    Evandro Aguiar
    http://wta3.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :) hauhauhauhauh
    • Sugerido como Resposta EvandroAS domingo, 29 de janeiro de 2012 17:59
    domingo, 29 de janeiro de 2012 17:58
  • A Lógica é a seguinte.

    A Sua fonte de dados no REPORTVIEWER deve Receber os dados que vieram pela consulta realizada pela Stored Procedure

     


    Artigos e Dicas VB.NET, C#, SQL, Report viewer e WPF
    Siga @PauloHDSousa
    domingo, 29 de janeiro de 2012 19:53
  • Paulo, 

    quando se escolhe o DataSet do realtorio eu escolhi a Stored_Procedure, lembrando q eu estou usando o visual studio 2010 e a engine do reportviewer mudou bastante na hora de monta-lo... tambem estou usando parametros.

    segunda-feira, 30 de janeiro de 2012 10:52
  • Evandro, é uma aplicação windows e estou usando o visual studio 2010, to perdidissimo na nova engine de montar relatorios.
    segunda-feira, 30 de janeiro de 2012 10:54
  • Olá Alvaro,

    Tudo beleza?

    Veja se isto lhe ajuda:

    '* Declare objects
    Dim sqlCon As New SqlConnection
    Dim sqlCmd As New SqlCommand
    Dim myDS As New DataSet
    Dim sqlDA As New SqlDataAdapter
    
    '* Read connection string from application config file
    sqlCon.ConnectionString = WinLocalRepTest.My.Settings.NorthwindConnectionString
    
    '* Set up command object
    sqlCmd.Connection = sqlCon
    sqlCmd.CommandText = "up_Fill_Employee_Combo"
    sqlCmd.CommandType = CommandType.StoredProcedure
    
    '* Set up data adapter and fill dataset
    sqlDA.SelectCommand = sqlCmd
    sqlDA.Fill(myDS, "Employees")
    
    '* Name property of data set (first parameter below) MUST be the same name
    '* as the data set used at design time. While this name can be changed in the
    '* report xml specification it must be manually changed everywhere it occurs.
    '* Choose a meaningful name when the dataset is created.
    '* Note here that the dataset table can be established as a ReportDataSource
    Dim myRDS As New _
    Microsoft.Reporting.WinForms.ReportDataSource("NorthwindDataSet_up_Fill_Employee_Combo", myDS.Tables("Employees"))
    
    '* Clear out default datasource and add new one (with same structure).
    ReportViewer1.LocalReport.DataSources.Clear()
    ReportViewer1.LocalReport.DataSources.Add(myRDS)
    
    '* Show report automatically at form load
    Me.ReportViewer1.RefreshReport()
    

    Tirei deste exemplo: http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/f845d74d-3fbc-4601-bccb-3bb350099d32

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    • Marcado como Resposta Alvaro VDL Filho segunda-feira, 30 de janeiro de 2012 16:16
    segunda-feira, 30 de janeiro de 2012 11:22
    Moderador
  • fernando,

               O artigo ajudou bastante, mas fiquei com algumas duvidas em relação a 2 linhas desse codigo...

     

        1 - sqlDA.Fill(myDS, "Employees")

           o que é esse Fill? , esse myDS é uma variavel que estou criando com o nome de "Employees"?

     

        2 - Microsoft.Reporting.WinForms.ReportDataSource("NorthwindDataSet_up_Fill_Employee_Combo", myDS.Tables("Employees"))

            de onde vem esse "NorthwindDataSet_up_Fill_Employee_Combo" ?

     

           ps:  Outra coisa que fiquei pensando é que se eu precisar usar parametros... com ficaria?

    se puder postar outros links como esse eu agradeceria muito... nao precisa me dizer como fazer, apenas me mostre o caminho se possivel,  não estou encontrando muitos assuntos relacionados, acho que não estou sabendo procurar, agradecido desde já.

     

    []'s

    segunda-feira, 30 de janeiro de 2012 13:33

  • Olá,

    O método Fill é responsável por popular o DataSet com os dados do banco de dados, e o parâmetro que aceita uma string, onde esta sendo passado o valor "Employees" indica com qual nome será criado uma DataTable dentro do DataSet. Esse parâmetro não é impactante.

    "NorthwindDataSet_up_Fill_Employee_Combo" é apenas o nome do DataSource que deve ser criado.

    Para utilizar parâmetros vc pode fazer assim:

        ReportParameter p1 = new ReportParameter("param1", _p1);
        ReportParameter p2 = new ReportParameter("param2", _p2);
        ReportParameter p3 = new ReportParameter("param3", _p3);
        ReportParameter p4 = new ReportParameter("param4", _p4);
         
        this.ReportViewer2.LocalReport.SetParameters(new ReportParameter[] {p1, p2, p3, p4});
    

    outro link:
    http://forums.asp.net/t/1240076.aspx/1


    []s!



    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    • Marcado como Resposta Alvaro VDL Filho segunda-feira, 30 de janeiro de 2012 16:15
    segunda-feira, 30 de janeiro de 2012 16:00
    Moderador
  • Fernando,

                   Muito obrigado =)

     

    []'s

    segunda-feira, 30 de janeiro de 2012 16:17
  • Estamos juntos! :)

    Comunidade unida!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    segunda-feira, 30 de janeiro de 2012 16:20
    Moderador