Principales respuestas
Metodo Buscar

Pregunta
-
Necesito ayuda con esta excepción, les adjunto el código que estoy desarrollando.
private void button1_Click(object sender, EventArgs e)
{
conexionbd conexion = new conexionbd();
conexion.abrir();
SqlConnection conectarbd = new SqlConnection("Data Source=PRACTICANTETI; Initial Catalog=Bascula3 ;Integrated Security=True");
SqlCommand cmd = new SqlCommand("SELECT Folio,Lote,AvisoEmbarque,Contrato, Marca,Modelo,Placas,Color,NumeroEco,PlacasCaja,Transportadora,Nombre,Producto,Tipo,NTipo,Observaciones,Provee,Concepto FROM Entrada INNER JOIN Camion INNER JOIN Operadores ON Entrada.idEntrada = Camion.idCamiones = Operadores.idOperador inner join Productos ON Productos.idProducto = Operadores.idOperador INNER JOIN Proveedores ON Proveedores.idProveedor = Productos.idProducto where Placas = '" + bus.Text + "'", conectarbd);
conectarbd.Open();
SqlDataReader leer = cmd.ExecuteReader(); // EL ERROR ME LO DA EN ESTA LINEA
Respuestas
-
hola
Tienes que usar parametros
string connstring = "Data Source=PRACTICANTETI; Initial Catalog=Bascula3 ;Integrated Security=True"; using(SqlConnection conectarbd = new SqlConnection(connstring)) { conectarbd.Open(); string query = "SELECT Folio,Lote,AvisoEmbarque,Contrato, Marca,Modelo,Placas,Color,NumeroEco,PlacasCaja, Transportadora,Nombre,Producto,Tipo,NTipo,Observaciones,Provee,Concepto FROM Entrada INNER JOIN Camion ON ???? INNER JOIN Operadores ON Entrada.idEntrada = Camion.idCamiones = Operadores.idOperador inner join Productos ON Productos.idProducto = Operadores.idOperador INNER JOIN Proveedores ON Proveedores.idProveedor = Productos.idProducto where Placas = @placas"; SqlCommand cmd = new SqlCommand(query, conectarbd); cmd.Paameters.AddWithValue("@placas", bus.Text); SqlDataReader leer = cmd.ExecuteReader(); //resto codigo }
ademas veo que una parte del INNER JOIN no la defines
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Sergio ParraModerator viernes, 14 de febrero de 2020 19:40
- Marcado como respuesta Katsa viernes, 14 de febrero de 2020 21:08
-
Hola Katsa:
Tienes mal planteada la consulta. Las relaciones están mal. El error de sintaxis te lo da por el segundo igual de la segunda linea que te expongo. Pero algo no encaja, además de eso.
FROM Entrada INNER JOIN Camion INNER JOIN Operadores ON Entrada.idEntrada = Camion.idCamiones = Operadores.idOperador inner join Productos ON Productos.idProducto = Operadores.idOperador INNER JOIN Proveedores ON Proveedores.idProveedor = Productos.idProducto
Esto es lo que contiene tú consulta.
Entrada INNER JOIN Camion xxxxx aquí falta el ON .....
INNER JOIN Operadores On .......Seguro que Operadores.idOperador se relaciona con idCamiones o idEntrada?
INNER JOIN Productos On Productos.idProducto = Operadores.IdOperador ... Seguro que operadores idOperador se relaciona con Productos.IdProducto ?
INNER JOIN Proveedores On Proveedores.idProveedor = Productos.idProducto ... Seguro que productos.idProducto se relaciona con Proveedores.idProveedor?
Además en tú código hay varios aspectos que puedes mejorar.
Deberías de envolver el método en un try catch, para capturar los errores.
Las conexiones, mejor establecerlas en un using, para que sea el quien libera los recursos al terminar.
Y deberías de usar parámetros.
Parametros con SqlCommand
Datareader con Using
https://docs.microsoft.com/es-es/dotnet/framework/data/adonet/retrieving-data-using-a-datareader
try catch
https://docs.microsoft.com/es-es/dotnet/csharp/language-reference/keywords/try-catch
- Marcado como respuesta Katsa viernes, 14 de febrero de 2020 21:08
Todas las respuestas
-
hola
Tienes que usar parametros
string connstring = "Data Source=PRACTICANTETI; Initial Catalog=Bascula3 ;Integrated Security=True"; using(SqlConnection conectarbd = new SqlConnection(connstring)) { conectarbd.Open(); string query = "SELECT Folio,Lote,AvisoEmbarque,Contrato, Marca,Modelo,Placas,Color,NumeroEco,PlacasCaja, Transportadora,Nombre,Producto,Tipo,NTipo,Observaciones,Provee,Concepto FROM Entrada INNER JOIN Camion ON ???? INNER JOIN Operadores ON Entrada.idEntrada = Camion.idCamiones = Operadores.idOperador inner join Productos ON Productos.idProducto = Operadores.idOperador INNER JOIN Proveedores ON Proveedores.idProveedor = Productos.idProducto where Placas = @placas"; SqlCommand cmd = new SqlCommand(query, conectarbd); cmd.Paameters.AddWithValue("@placas", bus.Text); SqlDataReader leer = cmd.ExecuteReader(); //resto codigo }
ademas veo que una parte del INNER JOIN no la defines
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Sergio ParraModerator viernes, 14 de febrero de 2020 19:40
- Marcado como respuesta Katsa viernes, 14 de febrero de 2020 21:08
-
Hola Katsa:
Tienes mal planteada la consulta. Las relaciones están mal. El error de sintaxis te lo da por el segundo igual de la segunda linea que te expongo. Pero algo no encaja, además de eso.
FROM Entrada INNER JOIN Camion INNER JOIN Operadores ON Entrada.idEntrada = Camion.idCamiones = Operadores.idOperador inner join Productos ON Productos.idProducto = Operadores.idOperador INNER JOIN Proveedores ON Proveedores.idProveedor = Productos.idProducto
Esto es lo que contiene tú consulta.
Entrada INNER JOIN Camion xxxxx aquí falta el ON .....
INNER JOIN Operadores On .......Seguro que Operadores.idOperador se relaciona con idCamiones o idEntrada?
INNER JOIN Productos On Productos.idProducto = Operadores.IdOperador ... Seguro que operadores idOperador se relaciona con Productos.IdProducto ?
INNER JOIN Proveedores On Proveedores.idProveedor = Productos.idProducto ... Seguro que productos.idProducto se relaciona con Proveedores.idProveedor?
Además en tú código hay varios aspectos que puedes mejorar.
Deberías de envolver el método en un try catch, para capturar los errores.
Las conexiones, mejor establecerlas en un using, para que sea el quien libera los recursos al terminar.
Y deberías de usar parámetros.
Parametros con SqlCommand
Datareader con Using
https://docs.microsoft.com/es-es/dotnet/framework/data/adonet/retrieving-data-using-a-datareader
try catch
https://docs.microsoft.com/es-es/dotnet/csharp/language-reference/keywords/try-catch
- Marcado como respuesta Katsa viernes, 14 de febrero de 2020 21:08