Visual Basic.NET - Debe declarar la variable escalar @id_Area

 
Vista:
sin imagen de perfil

Debe declarar la variable escalar @id_Area

Publicado por LUIS ALBERTO (7 intervenciones) el 24/07/2021 20:11:41
Hola a todos.... soy nuevo en esto de visual basic y estoy tratando de aprenderlo. Me disculpo de antemano por que se que preguntare por ridiculeses pero no tengo alternativa. Solo ustedes pueden ayudarme a sacudir esta ignorancia que me corroe y gracias de antemano.

Mi primera Ridicules. Tengo este codigo en un formulario

Public Shared Sub Create(Area_Operacion As Areas_OperacionEntity)
'Creamos la Conexion a la BD
Using conex As New SqlConnection(m_CadenaConexion)
conex.Open()
'Creamos la Sentencia SQl para agregar un registro
Dim sql As String = "INSERT INTO Areas_Operacion (DESCRIPCION) VALUES (@DESCRIPCION) SELECT SCOPE_IDENTITY()"
Dim cmd As New SqlCommand(sql, conex)
'agregamos el parametro
cmd.Parameters.AddWithValue("@Descripcion", Area_Operacion.Descripcion)
Area_Operacion.Id_Area = cmd.ExecuteScalar()
End Using
End Sub

Al ejecutar me aparece el error que debo declarar la variable Escalar Id_Area

Id_Area es una columna de Identidad en la tabla de Areas de operacion por ello no la inserto.

Este codigo fue copiado y luego modificado de este codigo que no me da ningun error.

Public Shared Sub Create(Bancos As BancosEntity)
'Creamos la Conexion a la BD
Using conex As New SqlConnection(m_CadenaConexion)
conex.Open()
'Creamos la Sentencia SQl para agregar un registro
Dim sql As String = "INSERT INTO BANCOS (NOMBRE,TELEFONO,DIRECCION,EMAIL,CONTACTO) VALUES (@NOMBRE,@TELEFONO,@DIRECCION,@EMAIL,@CONTACTO) SELECT SCOPE_IDENTITY()"
Dim cmd As New SqlCommand(sql, conex)
'agregamos el parametro
cmd.Parameters.AddWithValue("@Nombre", Bancos.Nombre)
cmd.Parameters.AddWithValue("@Telefono", Bancos.Telefono)
cmd.Parameters.AddWithValue("@Direccion", Bancos.Direccion)
cmd.Parameters.AddWithValue("@Email", Bancos.Email)
cmd.Parameters.AddWithValue("@Contacto", Bancos.contacto)
Bancos.Id_banco = cmd.ExecuteScalar()
End Using
End Sub

En esta opcion de bancos no me da el error

Auxilienme por favor... me urge y no paso de este error
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Debe declarar la variable escalar @id_Area

Publicado por Phil Rob (1546 intervenciones) el 25/07/2021 09:43:47
Hola,

El comando ExecuteScalar es para obtener uno valor solo (p.e. SELECT MaX(ID) FROM ..., da UNO Integer).
El comando ExecuteReader es para obtener varios registros (p.e. SELECT * FROM ..., da mucho registros) cuando trabajamos con un DataReader.

Para los comandos SQL Insert y Delete, debes utilizar el comando ExecuteNonQuery.

Cuando corriges tu condigo, este sera mejor.

...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Debe declarar la variable escalar @id_Area

Publicado por Phil Rob (1546 intervenciones) el 25/07/2021 15:03:14
.... tambien para el comando Update...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Debe declarar la variable escalar @id_Area

Publicado por LUIS ALB ERTO DE LEON (7 intervenciones) el 26/07/2021 19:07:57
Gracias.,.. lo solucione de otra forma pero probare la que me mencionas ya que mi objetivo es el aprendizaje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Debe declarar la variable escalar @id_Area

Publicado por Phil Rob (1546 intervenciones) el 26/07/2021 20:10:05
Muy bien.
Buenas tardes...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Debe declarar la variable escalar @id_Area

Publicado por Giancarlo (488 intervenciones) el 26/07/2021 22:59:02
donde dice
1
Dim sql As String = "INSERT INTO BANCOS (NOMBRE,TELEFONO,DIRECCION,EMAIL,CONTACTO) VALUES (@NOMBRE,@TELEFONO,@DIRECCION,@EMAIL,@CONTACTO) SELECT SCOPE_IDENTITY()"

debes agregarle el punto y coma para decirle que son 2 comandos y no uno. despues del @contacto) y al final
1
Dim sql As String = "INSERT INTO BANCOS (NOMBRE,TELEFONO,DIRECCION,EMAIL,CONTACTO) VALUES (@NOMBRE,@TELEFONO,@DIRECCION,@EMAIL,@CONTACTO); SELECT SCOPE_IDENTITY();"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar