Usuário com melhor resposta
Consulta em ADO.NET

Pergunta
-
Oi Pessoal,
Em minha aplicação tenho uma proc que precisa consultar uma range de profiles, exemplo:
Minha duvida é como faço para a minha aplicação faça esse consulta, passando o rage como parâmetro, pois tentei concatenar os valores em um string ficando "1,2,99", mas dessa forma da erro. Preciso fazer alguma alteração na minha Proc tbm?...
@range INT,
...
SELECT col1, col2, col3, col4 FROM tabela WHERE profiles in (@rage)
Obrigado,
- Movido Seilor Bonancio Junior quinta-feira, 8 de março de 2012 10:54 (De:ASP.NET)
Respostas
-
Daylo veja este tópico do site StarckOverFlow sobre esta mesma duvida sua:
http://stackoverflow.com/questions/337704/parameterizing-an-sql-in-clause
Apenas para registro uma das soluções:
string[] tags = new string[] { "ruby", "rails", "scruffy", "rubyonrails" }; string cmdText = "SELECT * FROM Tags WHERE Name IN ({0})"; string[] paramNames = tags.Select( (s, i) => "@tag" + i.ToString() ).ToArray(); string inClause = string.Join(",", paramNames); using (SqlCommand cmd = new SqlCommand(string.Format(cmdText, inClause))) { for(int i = 0; i < paramNames.Length; i++) { cmd.Parameters.AddWithValue(paramNames[i], tags[i]); } }
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 8 de março de 2012 12:07
- Marcado como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator terça-feira, 20 de março de 2012 16:41
Todas as Respostas
-
Nao nao precisa alterar sua proc.
Voce utiliza do mesmo modo se fosse um Windows forms.
Voce precisa saber sobre a parte de DAO que e a conexao do banco. Vou colocar um exemplos bem faceis abaixo.
Para passar parametro voce usa o SqlParameter exemplo.
SqlCommand cmd = new SqlCommand(); cmd.CommandText = "nome_da_proc"; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = conexao; //conexao e uma instancia do SqlConnection SqlParameter data = new SqlParameter("nome_do_parametro", SqlDbType.Integer); //tipo do parametro data.Value = data; //valor do parametro que vai ser enviado a proc cmd.Parameters.Add(data);
Esse aqui tem um post com a mesma duvida Recomendo que voce veja esse
http://social.msdn.microsoft.com/Forums/pt/504/thread/d3c7484a-d56f-43de-8726-71db8f47b03d
Outros links.
http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson07.aspx
-
Daylo veja este tópico do site StarckOverFlow sobre esta mesma duvida sua:
http://stackoverflow.com/questions/337704/parameterizing-an-sql-in-clause
Apenas para registro uma das soluções:
string[] tags = new string[] { "ruby", "rails", "scruffy", "rubyonrails" }; string cmdText = "SELECT * FROM Tags WHERE Name IN ({0})"; string[] paramNames = tags.Select( (s, i) => "@tag" + i.ToString() ).ToArray(); string inClause = string.Join(",", paramNames); using (SqlCommand cmd = new SqlCommand(string.Format(cmdText, inClause))) { for(int i = 0; i < paramNames.Length; i++) { cmd.Parameters.AddWithValue(paramNames[i], tags[i]); } }
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 8 de março de 2012 12:07
- Marcado como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator terça-feira, 20 de março de 2012 16:41