Usuário com melhor resposta
Passar parametro para stored procedure

Pergunta
-
Bom dia,
A minha questão é a seguinte:
Tenho uma aplicação em aspnet que quero passar parametros para uma stored procedure.
Não consigo é passar valores inteiros.
Alguém me pode ajudar.
Segue o código:
Aspnet:
cmd.CommandType = CommandType.StoredProcedure; cnn.Open(); cmd.Parameters.Add("@idcabgpesquisa", SqlDbType.Int).Value = Convert.ToInt32(idlinha.Value); cmd.Parameters.Add("@ordenacao", SqlDbType.VarChar).Value = ordenacao; cmd.Parameters.Add("@nomefich", SqlDbType.VarChar).Value = fichdestino; cmd.Parameters.Add("@nomefichtemp", SqlDbType.VarChar).Value = tempfichdestino; cmd.ExecuteNonQuery(); cnn.Close();
Segue a procedure no sqlserver:
ALTER PROCEDURE [dbo].[importapesq] -- Add the parameters for the stored procedure here @idcabgpesquisa int, @nomefich char(40), @nomefichtemp char(40), @ordenacao varchar(400) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; ----@nome= ficheiro que guarda a pesquisa ----@nomefich ficheiro temporário que o utilizador trabalha declare @ins varchar(5000) declare @sel varchar(150) declare @up varchar(150) declare @copiar varchar(2000) declare @del varchar(150) set @del='delete from '+@nomefichtemp execute (@del) set @ins='insert into '+@nomefichtemp+' (ordem,checkado,iditem,codigoitem,dtstatus,dtcriacao,codalternativo,itemdesc,seq_ini,seq_fim,codlocal, situacao,contido,idtipoobjecto,fromdtime,todtime,codaltcont) SELECT convert(varchar(25),GETDATE(),121)'+@ordenacao+', 1 as checkado, dbo.gc_items.iditem,dbo.gc_items.codigoitem,dbo.gc_items.dtstatus,dbo.gc_items.dtcriacao, dbo.gc_items.codalternativo,dbo.gc_items.itemdesc,dbo.gc_items.seq_ini,dbo.gc_items.seq_fim, dbo.gc_localizacoes.CodLocal,dbo.gc_situacao.Descricao AS Situacao, (select CodigoItem from dbo.gc_items as table1 where table1.IDItem = dbo.gc_items.IDContentor) as contido, dbo.gc_items.idtipoobjecto,dbo.gc_items.fromdtime,dbo.gc_items.todtime, (select Codalternativo from dbo.gc_items as table2 where table2.IDItem = dbo.gc_items.IDContentor) as codaltcont FROM dbo.gc_items LEFT JOIN dbo.gc_clientes ON dbo.gc_items.IDCliente = dbo.gc_clientes.IDCliente LEFT JOIN dbo.gc_localizacoes ON dbo.gc_items.IDLocalizacao = dbo.gc_localizacoes.IDLocalizacao LEFT JOIN dbo.gc_situacao ON dbo.gc_items.IDSituacao = dbo.gc_situacao.IDSituacao WHERE IDITEM in (select iditem from gc_tabela_gpesquisasdet where idcabgpesquisa='+@idcabgpesquisa+')';
Obrigado,
Élio
- Movido Gustavo Maia Aguiar quinta-feira, 5 de julho de 2012 01:56 (De:SQL Server - Desenvolvimento Geral)
Respostas
-
Fernando,
Consegui resolver da seguinte maneira:
aspx.cs C#
Passei como Char cmd.Parameters.Add("@idcabgpesquisa", SqlDbType.Char).Value = idlinha.Value;
stored procedure:
Recebi como char ALTER PROCEDURE [dbo].[importapesqot] -- Add the parameters for the stored procedure here @idcabgpesquisa as char(10),
Obrigado, Élio Godinho
- Marcado como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator sexta-feira, 13 de julho de 2012 21:45
Todas as Respostas
-
cmd.Parameters.AddWithValue("@idcabgpesquisa", Convert.ToInt32(idlinha.Value));
ALTER PROCEDURE [dbo].[importapesq] -- Add the parameters for the stored procedure here @idcabgpesquisa as int, @nomefich as char(40), @nomefichtemp as char(40), @ordenacao as varchar(400)
Se a sugestão resolver o problema, favor marcar como Resposta.
- Editado Lucas_Santos quarta-feira, 4 de julho de 2012 12:41
-
Segue exemplo.
SqlCommand sqlComm = new SqlCommand(); sqlComm.Connection = dbFunctions.BDConnection; sqlComm.CommandType = System.Data.CommandType.StoredProcedure; sqlComm.CommandText = @"[base].[dbo].[nome da procedura]"; sqlComm.Parameters.Add("codigo", System.Data.SqlDbType.Int); sqlComm.Parameters["codigo"].Direction = System.Data.ParameterDirection.Input; sqlComm.Parameters["CODIGO"].Value = ponCodigo; sqlComm.ExecuteNonQuery();
Ivan Ferraz, MCP,MCTS Desenvolvedor 3 Estrelas ASP.NET
- Sugerido como Resposta Ivan Ferraz - MCP quarta-feira, 4 de julho de 2012 14:00
-
Elio,
Alguma evolução nesta questão?
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil -
Fernando,
Consegui resolver da seguinte maneira:
aspx.cs C#
Passei como Char cmd.Parameters.Add("@idcabgpesquisa", SqlDbType.Char).Value = idlinha.Value;
stored procedure:
Recebi como char ALTER PROCEDURE [dbo].[importapesqot] -- Add the parameters for the stored procedure here @idcabgpesquisa as char(10),
Obrigado, Élio Godinho
- Marcado como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator sexta-feira, 13 de julho de 2012 21:45