• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

andfernandes

[VB.NET] Como ir buscar a listagem de uma sp

8 mensagens neste tópico

Boa tarde! tou com uma dificuldade em ir buscar uma listagem de uma store procedure em vb.net

       

daRelatorio = New OleDb.OleDbDataAdapter("listar", cnn)
        'define o tipo stored procedure
        daRelatorio.SelectCommand.CommandType = CommandType.StoredProcedure
        'define o tipo de dados do parâmetro a ser recebido na store procedure
        daRelatorio.SelectCommand.Parameters.Add(New OleDb.OleDbParameter("@val", OleDb.OleDbType.Integer))
        'recebe o valor que queremos para a nossa variavel da store procedure
        daRelatorio.SelectCommand.Parameters("@val").Value = 1
        ds1 = New DataSet
        'preenche o dataset com os dados da sp ou devia mas ta a dar me um erro
        daRelatorio.Fill(ds1, "listar")
        'exibe os dados no datagrid
        DataGrid1.DataSource = ds1.Tables("listar").DefaultView

dá me um erro em... daRelatorio.Fill(ds1, "listar").... 'System.Data.OleDb.OleDbException'....é a primeira vez que estou a fazer deste modo por isso aceito qualquer tipo de sugestao? obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não tenho a certeza se o método fill abre a conexão automaticamente mas podes experimentar meter um cnn.Open antes de fazeres o fill ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nao, e que eu criei um modulo em que mal a aplicaçao e executada executo logo o cnn.open(), e a conexao fica sempre aberta ate eu fechar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas

O listar é um stored procedure criado no ms sql server 2005?

Não uses OleDd com sql server o desempenho é pior usa antes o System.Data.SqlClients

Falta o .ExecuteNonQuery and do .Fill

Jorge

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é necessário o ExecuteNonQuery...

Expermenta fazer um

Try
daRelatorio.Fill(ds1, "listar")
Catch ex as Exception
Messagebox.Show(ex.Message)
End Try

Pode ser que te ajude a detectar melhor o erro...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

uso o sql 2000....o procedure e o seguinte:

CREATE PROCEDURE [listar] AS

begin

declare @val as integer

select * from Aluno where A_NumAluno=@val

end

GO

penso k nao tem nada de errado...se eu trocar o @val por 1 o procedure corre bem e mostra-me o select mas executo no sql...

usando o try aparece-me a seguinte mensagem de erro..."Procedure listar has no parameters and arguments were supllied"...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o Stored procedure esta mal , é impossível compilar o declare esta mal.

CREATE PROCEDURE [listar]
   @val int
AS
begin
   select * from Aluno where A_NumAluno=@val
end
GO

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

era mesmo isso, algo que parece nao ter significado e afinal conta muito faz aentido...obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora