Foros del Web » Programación para mayores de 30 ;) » .NET »

Por que este error en el Execute.Scalar()?

Estas en el tema de Por que este error en el Execute.Scalar()? en el foro de .NET en Foros del Web. Hola!! Al ejecutar un aplicacion winform me da este error y no se como solucionarlo.Gracias! You have an error in your SQL syntax; check the ...
  #1 (permalink)  
Antiguo 04/08/2009, 03:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 118
Antigüedad: 15 años
Puntos: 1
Por que este error en el Execute.Scalar()?

Hola!! Al ejecutar un aplicacion winform me da este error y no se como solucionarlo.Gracias!

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''+codigo+'' at line 1
  #2 (permalink)  
Antiguo 04/08/2009, 04:44
 
Fecha de Ingreso: marzo-2008
Ubicación: Cádiz, España
Mensajes: 89
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Por que este error en el Execute.Scalar()?

Tienes un error en la consulta. Si nos la puedes poner para ver como lo haces, quizas te podamos ayudar.
  #3 (permalink)  
Antiguo 04/08/2009, 07:47
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Por que este error en el Execute.Scalar()?

El error puede estar en la forma de como estas enviando el Parametro Codigo a tu Sentencia

el MySQL esta recibiendo en la consulta el "+Codigo+" y deberia ser por Codigo

verifica la forma de como estas realizando tu consulta MySQL

Código C#:
Ver original
  1. String Sql = "Select * From TuTabla Where TuCampo = '" + Codigo +"'";
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #4 (permalink)  
Antiguo 04/08/2009, 07:47
 
Fecha de Ingreso: mayo-2009
Mensajes: 118
Antigüedad: 15 años
Puntos: 1
Respuesta: Por que este error en el Execute.Scalar()?

Esta es la consulta

private void button1_Click(object sender, EventArgs e)
{
Codigo = textBox2.Text.Trim();
cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select unds from '+codigo+'";



conn.Open();

Object Valor = null;
Valor = cmd.ExecuteScalar();

if(Valor.ToString().Trim() != "")
{
if (resultado >= int.Parse(Valor.ToString().Trim()))
{
}
}

}


}
}
  #5 (permalink)  
Antiguo 04/08/2009, 07:50
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Por que este error en el Execute.Scalar()?

si te das cuenta el error esta en tu consulta

Código C#:
Ver original
  1. cmd.CommandText = "select unds from '+codigo+'";
  2. // deberia ser
  3. cmd.CommandText = "select unds from " + codigo + "";
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Última edición por Dradi7; 04/08/2009 a las 15:05
  #6 (permalink)  
Antiguo 04/08/2009, 07:55
 
Fecha de Ingreso: mayo-2009
Mensajes: 118
Antigüedad: 15 años
Puntos: 1
Respuesta: Por que este error en el Execute.Scalar()?

Os cuento que quiero hacer.... yo lo que pretendo hacer es introducir en un textbox el nombre, que es un codigo realmente, de la tabla que quiero abrir . Despues de esto en otro textbox introduzco un numero que multiplico por otro cualquiera y y el resultado lo comparo con el primer valor de la tabla de la columna "unds" y sino es mayor o igual que lo muestre , el codigo del producto en un gridview.
  #7 (permalink)  
Antiguo 04/08/2009, 14:41
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Por que este error en el Execute.Scalar()?

Hola.

Cuando queres poner el nombre de una tabla NO debes ponerlo entre comillas, proba así:

cmd.CommandText = "select unds from " + codigo;

Otra cosa es que si usas ExcecuteScalar tu consulta sql solo debe devolver un solo valor. Si tu consulta va a devolver más de una columna o filas debes usar executereader
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #8 (permalink)  
Antiguo 05/08/2009, 02:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 118
Antigüedad: 15 años
Puntos: 1
Respuesta: Por que este error en el Execute.Scalar()?

Hola !!

Pues me sigue dando error en el executescalar() y el error que me da es este

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1130' at line 1

Y la sentencia de MySql que tengo la hago asi

Codigo = textBox2.Text.Trim();
cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select unds from " + Codigo;

conn.Open();

Object Valor = null;
Valor = cmd.ExecuteScalar();
resultado = 20 * unds;
if(Valor.ToString().Trim() != "")
{
if (resultado >= int.Parse(Valor.ToString().Trim()))
{
}
}

}


}
}
  #9 (permalink)  
Antiguo 05/08/2009, 02:17
 
Fecha de Ingreso: marzo-2008
Ubicación: Cádiz, España
Mensajes: 89
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Por que este error en el Execute.Scalar()?

Por el error que te esta dando, la consulta que estas haciendo es:
Código PHP:
select unds from 1130 
¿Tienes una tabla que se llame asi??
  #10 (permalink)  
Antiguo 05/08/2009, 02:36
 
Fecha de Ingreso: mayo-2009
Mensajes: 118
Antigüedad: 15 años
Puntos: 1
Respuesta: Por que este error en el Execute.Scalar()?

Si, se llama asi pq es el codigo de un producto , Estaria mal¿?
  #11 (permalink)  
Antiguo 05/08/2009, 03:12
 
Fecha de Ingreso: mayo-2009
Mensajes: 118
Antigüedad: 15 años
Puntos: 1
Respuesta: Por que este error en el Execute.Scalar()?

En el form_load cargaba esto :

private void Form1_Load(object sender, EventArgs e)
{
bdl = new DataSet("singularity");
tabla = new DataTable("eventrecord");
conn = new MySqlConnection("Database=singularity;Data Source=localhost;User Id=root;Password=825200");
cmd = new MySqlCommand("Sentencia SQL", conn);
adaptador = new MySqlDataAdapter(cmd);
}
int resultado;
int unds;
string RutaPrograma;
string Codigo;

Y eventrecord es otra tabla de la BD singularity y aqui podria estar el error?¿
  #12 (permalink)  
Antiguo 05/08/2009, 08:04
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Por que este error en el Execute.Scalar()?

entonces si es el codigo de un producto porque lo estas utilzando como una tabla
entonces tu sentencia cambiaria.
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #13 (permalink)  
Antiguo 05/08/2009, 10:08
 
Fecha de Ingreso: mayo-2009
Mensajes: 118
Antigüedad: 15 años
Puntos: 1
Respuesta: Por que este error en el Execute.Scalar()?

Claro, es que cada producto lleva asociados otros

1130

1245----->23
2547----->14

Es decir el producto es el 1130 ,la tabla se llama 1130 ,el cual, esta compuesto de lo productos 1245 y 2547. Seria asi y lo que quiero hacer es recoger el valor de la 1º fila 2º cloumna ,en este caso el 23, y compararlo con el resultado de la multiplicacion que hago en el codigo.
  #14 (permalink)  
Antiguo 05/08/2009, 11:02
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Por que este error en el Execute.Scalar()?

select top 1 nombredelacolumna from tabla

solo reemplaza con tus variables o constantes que quieras

rarisimo que tengas tablas con nombres numericos , el esquema es muy propenso a fallas pero bueno eso es otro show.

con algo como lo de arriba lo solucionarias
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #15 (permalink)  
Antiguo 06/08/2009, 02:29
 
Fecha de Ingreso: mayo-2009
Mensajes: 118
Antigüedad: 15 años
Puntos: 1
Respuesta: Por que este error en el Execute.Scalar()?

Sigue sin funcionar.....Pq sigue dando el mismo error....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:51.