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

Insertar Fecha desde c# a mysql

Estas en el tema de Insertar Fecha desde c# a mysql en el foro de .NET en Foros del Web. hola que tal tengo un problema al tratar de insertar una fecha la cual selecciono con un dateTimePicker a un campo en una bd de ...
  #1 (permalink)  
Antiguo 15/06/2011, 13:36
Avatar de SNAM  
Fecha de Ingreso: junio-2011
Mensajes: 22
Antigüedad: 12 años, 10 meses
Puntos: 0
Insertar Fecha desde c# a mysql

hola que tal
tengo un problema al tratar de insertar una fecha la cual selecciono con un dateTimePicker a un campo en una bd de mysql, si me hace la insercion pero me guarda el campo como "0000-00-00 00:00:00"
Código:
string varNombre = txtNomProyecto.Text;
int varIdAsociado = int.Parse(cbAsociado.SelectedValue.ToString());
int varIdServicos = fkServicios;
DateTime varFeInicio = dtpFeInicio.Value;
DateTime varFeEntrega = dtpFeEntrega.Value;
DateTime varFeliberacion = dtpFeLiberacion.Value;
decimal varTotal = decimal.Parse(txtTotal.Text);
int varPagos = int.Parse(txtNoPagos.Text);
string varPropuesta = txtPropuesta.Text;
string varConvenio = txtConvenio.Text;
string varCronograma = txtCronograma.Text;

string insert = "INSERT INTO proyectos VALUES ('NULL','" + varNombre + "','" + varIdAsociado + "','" + varIdServicos + "','" + varFeInicio + "','" + varFeEntrega + "','" + varFeliberacion + "','" + varTotal + "','" + varPagos + "','" + varPropuesta + "','" + varConvenio + "','" + varCronograma + "')";
MySqlCommand comando = new MySqlCommand(insert, conexion);
comando.ExecuteNonQuery();
espero y me puedan ayudar, de antemano gracias
  #2 (permalink)  
Antiguo 15/06/2011, 13:48
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Insertar Fecha desde c# a mysql

Hola SNAM hazlo de esta manera :
Código c#:
Ver original
  1. DateTime varFeInicio = Convert.toDatetime(dtpFeInicio.Text);
  2. DateTime varFeEntrega = Convert.toDatetime(dtpFeEntrega.Text);
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 15/06/2011, 13:58
Avatar de SNAM  
Fecha de Ingreso: junio-2011
Mensajes: 22
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Insertar Fecha desde c# a mysql

Aquaventus gracias por responder,
pero aun asi sigue guardandome los valores en ceros
  #4 (permalink)  
Antiguo 15/06/2011, 13:59
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Insertar Fecha desde c# a mysql

Mmmm... verifica con los breakpoints si en las variables almacena correctamente las fechas.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 15/06/2011, 14:05
Avatar de SNAM  
Fecha de Ingreso: junio-2011
Mensajes: 22
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Insertar Fecha desde c# a mysql

Cita:
Iniciado por Aquaventus Ver Mensaje
Mmmm... verifica con los breakpoints si en las variables almacena correctamente las fechas.
ya lo corri con los breakpoint y este es el valor que me guarda
Código:
varFeInicio = {6/29/2011 12:00:00 AM}
  #6 (permalink)  
Antiguo 15/06/2011, 14:09
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Insertar Fecha desde c# a mysql

creo que ya puedo ver tu error... cuando agregas fechas en ese tipo de transacciones como ya esta declarado la variable como Datetime no es necesario agregarlo como cadena con los "','" + varFeInicio + "','" sino : "'," + varFeInicio + ",'" sin estar entre las comillas simples. Me cuentas.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 15/06/2011, 14:24
Avatar de SNAM  
Fecha de Ingreso: junio-2011
Mensajes: 22
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Insertar Fecha desde c# a mysql

Cita:
Iniciado por Aquaventus Ver Mensaje
creo que ya puedo ver tu error... cuando agregas fechas en ese tipo de transacciones como ya esta declarado la variable como Datetime no es necesario agregarlo como cadena con los "','" + varFeInicio + "','" sino : "'," + varFeInicio + ",'" sin estar entre las comillas simples. Me cuentas.
dices de esta manera
Código:
                string insert = "INSERT INTO proyectos VALUES ('NULL','" + varNombre + "','" + varIdAsociado + "','" + varIdServicos + "'," + varFeInicio + "," + varFeEntrega + "," + varFeliberacion + ",'" + varTotal + "','" + varPagos + "','" + varPropuesta + "','" + varConvenio + "','" + varCronograma + "')";
la variable varFeInicio le sigo asignando el valor de dtpFeInicio.text o le asigono .value
  #8 (permalink)  
Antiguo 15/06/2011, 14:27
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Insertar Fecha desde c# a mysql

Cita:
Iniciado por SNAM Ver Mensaje
dices de esta manera
Código:
                string insert = "INSERT INTO proyectos VALUES ('NULL','" + varNombre + "','" + varIdAsociado + "','" + varIdServicos + "'," + varFeInicio + "," + varFeEntrega + "," + varFeliberacion + ",'" + varTotal + "','" + varPagos + "','" + varPropuesta + "','" + varConvenio + "','" + varCronograma + "')";
si.
Cita:
Iniciado por SNAM Ver Mensaje
la variable varFeInicio le sigo asignando el valor de dtpFeInicio.text o le asigono .value
Text.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #9 (permalink)  
Antiguo 15/06/2011, 14:43
Avatar de SNAM  
Fecha de Ingreso: junio-2011
Mensajes: 22
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Insertar Fecha desde c# a mysql

me arroja un error
Código:
variable = "MySql.Data.MySqlClient.MySqlException (0x80004005): 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 '12:00:00 AM,6/30/2011 12:00:00 AM,7/1/2011 12:00:00 AM,'1','1','q','q...
  #10 (permalink)  
Antiguo 15/06/2011, 14:56
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Insertar Fecha desde c# a mysql

Como esta asignado tu tipo de dato en tu mysql como DATE o DATETIME?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #11 (permalink)  
Antiguo 15/06/2011, 14:57
Avatar de SNAM  
Fecha de Ingreso: junio-2011
Mensajes: 22
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Insertar Fecha desde c# a mysql

Cita:
Iniciado por Aquaventus Ver Mensaje
Como esta asignado tu tipo de dato en tu mysql como DATE o DATETIME?
datetime
  #12 (permalink)  
Antiguo 15/06/2011, 15:01
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Insertar Fecha desde c# a mysql

mira este link : que es justo lo que estoy viendo en el error que me mencionaste : 12:00:00 AM,6/30/2011, que no acepta el AM o PM, por tanto en este post esta la solución para que lo leas. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #13 (permalink)  
Antiguo 15/06/2011, 17:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Insertar Fecha desde c# a mysql

Vamos a lo simple: El mejor modo de manejar el problema de la transferencia de datos a una consulta es usar parámetros y dejar que los problemas de conversiones los resuelva el conector, que tiene sus propios métodos.
Código C#.Net:
Ver original
  1. string oSQL;
  2. oSQL= "INSERT INTO proyectos VALUES (NULL,@vNombre , @vIdAsociado, @vIdServicos, @vFeInicio, @vFeEntrega, @vFeliberacion, @vTotal, @vPagos, @vPropuesta, @vConvenio, @vCronograma)";
  3. MySqlCommand comando = new MySqlCommand(insert, conexion);
  4. comando.Parameters.AddWithValue("@vNombre ", varNombre).Direction = Direction.Input;
  5. comando.Parameters.AddWithValue("@vIdAsociado", varIdAsociado).Direction = Direction.Input;
  6. comando.Parameters.AddWithValue("@vIdServicos", varIdServicos).= Direction.Input;
  7. comando.Parameters.AddWithValue("@vFeInicio", varFeInicio).Direction = Direction.Input;
  8. comando.Parameters.AddWithValue("@vFeEntrega", varFeEntrega).Direction = Direction.Input;
  9. comando.Parameters.AddWithValue("@vFeliberacion", varFeliberacion).Direction = Direction.Input;
  10. comando.Parameters.AddWithValue("@vTotal", varTotal).Direction = Direction.Input;
  11. comando.Parameters.AddWithValue("@vPagos", varPagos).Direction = Direction.Input;
  12. comando.Parameters.AddWithValue("@vPropuesta", varPropuesta).Direction = Direction.Input;
  13. comando.Parameters.AddWithValue("@vConvenio", varConvenio).Direction = Direction.Input;
  14. comando.Parameters.AddWithValue("@vCronograma", varCronograma).Direction = Direction.Input;
  15. comando.ExecuteNonQuery();

Si hay algún error de sintaxis es porque habitualmente trabajo con VB.Net, y muy poco con C#.Net.

Condiciones necesarias:
1) Todas las variables deben ser del tipo preciso: Los valores monetarios deben ser Float, los de fecha Date, Los de fecha y hora DateTime, los de cadena String, los enteros Integer, etc.
2) No debe faltar ninguna variable y parámetro.
3) Los valores constantes se deben colocar dentro de la cadena del SQL.
4) NULL no se debe insertar entre apóstrofos. No es una cadena ni un valor, NULL es un estado, un puntero a la nada, y como tal no lleva comillas ni apóstrofes.

Todo este tipo de cosas se pueden consultar en el Manual de Referencia de MySQL::20.2.4.1.4. Working with Parameters.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 15/06/2011 a las 17:53
  #14 (permalink)  
Antiguo 16/06/2011, 12:58
Avatar de SNAM  
Fecha de Ingreso: junio-2011
Mensajes: 22
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Insertar Fecha desde c# a mysql

primero que nada gracias a Aquaventus y gnzsoloyo por su ayuda ya pude insertar las fechas como quería tuve que utilizar los parámetros para poder hacerlo
  #15 (permalink)  
Antiguo 16/06/2011, 13:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Insertar Fecha desde c# a mysql

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #16 (permalink)  
Antiguo 16/06/2011, 13:45
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Insertar Fecha desde c# a mysql

.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Etiquetas: fecha, mysql
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 17:32.