Usuário com melhor resposta
Must declare the scalar variable

Pergunta
-
Boa noite,Estou começando a usar o VS.NET com banco faz pouco tempo e tenho pouquissimo conhecimento. Eis o meu problema:
private void btnVerifica_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(@"Data Source=oi-039b7c21ee0e\sqlexpress;Initial Catalog=Biblioteca;Integrated Security=True"); SqlCommand comm = new SqlCommand("Select count(*) FROM [Biblioteca].[dbo].[Livro] Where Titulo = @txtTitulo" And emprestimo = 'V'", conn); comm.Parameters.Add("titulo", SqlDbType.VarChar).Value = txtTitulo.Text; comm.Parameters.Add("@emprestimo", SqlDbType.VarChar).Value = "V"; conn.Open(); int i = (int)comm.ExecuteScalar(); if (i > 0) { MessageBox.Show("Tem o livro."); } else MessageBox.Show("Não tem o livro."); conn.Close(); }
Acontece o seguinte erro de execução: Must declare the scalar variable @txtTitulo.Grato.- Movido Gustavo Maia Aguiar quarta-feira, 24 de junho de 2009 13:59 ([Loc]From:SQL Server - Desenvolvimento Geral)
Respostas
-
Bom Dia,
Você esqueceu do @ na hora de declarar o parâmetro no método Add da coleção Parameters do objeto SqlCommand
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
Como importar e exportar imagens entre o SQL Server e o File System ? – Parte II
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!612.entry
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 24 de junho de 2009 07:49
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 3 de setembro de 2010 23:08
-
Carlos,
Seu post é mais indicado para ser colocado no Fórum de .NET, ADO.NET, mas, enfim... Você tem dois erros:
- O parâmetro que você adiciona ("titulo") é diferente do parâmetro que a sua query está esperando ("@txtTitulo")
- Você tem parâmetros demais.
Ajustei o seu método, veja se funciona agora...
Além disso, se você estiver utilizando Framework 3.5 você também pode utilizar o método .AddWithValue() da sua conexão que é mais simples de usar...
private void btnVerifica_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(@"Data Source=oi-039b7c21ee0e\sqlexpress;Initial Catalog=Biblioteca;Integrated Security=True"); SqlCommand comm = new SqlCommand("Select count(*) FROM [Biblioteca].[dbo].[Livro] Where Titulo = @txtTitulo And emprestimo = 'V'", conn); comm.Parameters.Add("@txtTitulo", SqlDbType.VarChar).Value = txtTitulo.Text; conn.Open(); int i = (int)comm.ExecuteScalar(); if (i > 0) { MessageBox.Show("Tem o livro."); } else MessageBox.Show("Não tem o livro."); conn.Close(); }
MCT / MCITP - Database Administrator MCITP - Database Developer 2008- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 3 de setembro de 2010 23:08
Todas as Respostas
-
Bom Dia,
Você esqueceu do @ na hora de declarar o parâmetro no método Add da coleção Parameters do objeto SqlCommand
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
Como importar e exportar imagens entre o SQL Server e o File System ? – Parte II
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!612.entry
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 24 de junho de 2009 07:49
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 3 de setembro de 2010 23:08
-
Carlos,
Seu post é mais indicado para ser colocado no Fórum de .NET, ADO.NET, mas, enfim... Você tem dois erros:
- O parâmetro que você adiciona ("titulo") é diferente do parâmetro que a sua query está esperando ("@txtTitulo")
- Você tem parâmetros demais.
Ajustei o seu método, veja se funciona agora...
Além disso, se você estiver utilizando Framework 3.5 você também pode utilizar o método .AddWithValue() da sua conexão que é mais simples de usar...
private void btnVerifica_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(@"Data Source=oi-039b7c21ee0e\sqlexpress;Initial Catalog=Biblioteca;Integrated Security=True"); SqlCommand comm = new SqlCommand("Select count(*) FROM [Biblioteca].[dbo].[Livro] Where Titulo = @txtTitulo And emprestimo = 'V'", conn); comm.Parameters.Add("@txtTitulo", SqlDbType.VarChar).Value = txtTitulo.Text; conn.Open(); int i = (int)comm.ExecuteScalar(); if (i > 0) { MessageBox.Show("Tem o livro."); } else MessageBox.Show("Não tem o livro."); conn.Close(); }
MCT / MCITP - Database Administrator MCITP - Database Developer 2008- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 3 de setembro de 2010 23:08