• Jueves 2 de Mayo de 2024, 03:02

Autor Tema:  Datatime  (Leído 3114 veces)

spiderman16

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Datatime
« en: Miércoles 14 de Mayo de 2008, 18:24 »
0
ayuda por favor lo que pasa que estoy haciendo una aplicación con c# y sql2005, bueno el problema se me presenta cuando quiero insertar un valor que extraigo de un datapicker (fecha), para insertarlo en un campo datatime de sql server2005 me marca lo siguiente "Conversion failed when converting datetime from character string.
Changed database context to 'escuela'." al datapicker esta en su propiedad format en short, si alguien me puede decir como le hago para no tener problemas a la hora de insertarlo se lo agradeceria, ocupe también para la columan el tipo de dato smalldatatime pero también marca lo mismo Gracias...

yaG

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Re: Datatime
« Respuesta #1 en: Miércoles 14 de Mayo de 2008, 21:04 »
0
describe el formato exacto con el que se estaría ingresando a la BD...
que valor te da el datetimepicker ?
Danos algunos ejemplos..dependemos de eso para ayudarte.


Por otro lado tal vez tengas la configuracion del sql 2005 con idioma espanol...que te toma la fecha con el formato que usamos nosotros (21-08-2008), pero no el "standar" (2008-08-21)

Danos ejemplos de los valores que intentas insertar (lo que te devuelve el datetimepicker)
[size=109]Antes de preguntar recuerda el concepto GIYF. Google is your friend.[/size][/u]

spiderman16

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datatime
« Respuesta #2 en: Miércoles 14 de Mayo de 2008, 21:53 »
0
bueno en el datapicker la da así 14/09/2008, pero en el sqlserver coloque una fecha para ver como la recibia directemente en la table y es la mima pero la pone así 14/09/2008 12:00:00 a.m. con la hora no se si eso sea lo que afecta
este el codigo que doy de alta

SqlCommand cmd = new SqlCommand("use escuela insert into dbo.alumnos values('" + Convert.ToInt32(this.txtcontrol.Text) + "', '" + this.txtnombre.Text.Trim() + "', '" + this.txtapellidop.Text.Trim() + "','" + this.txtapellidom.Text.Trim() + "','" + this.txtreferencias.Text.Trim() + "','" + Convert.ToInt32(this.txtsemestre.Text.Trim()) + "','" + this.txtfecha.Text.Trim() + "','" + this.txtgrupo.Text.Trim() + "','" + this.txtcarrera .Text.Trim() + "')", cone.conn);

ya le coloque el convert.todatetime y tampoco

ing_marco

  • Miembro MUY activo
  • ***
  • Mensajes: 263
    • Ver Perfil
Re: Datatime
« Respuesta #3 en: Miércoles 14 de Mayo de 2008, 22:35 »
0
has tratado antes de enviar la fecha ponerla en este formato: 2008-09-04, esa un formato universal, ademas asi descartarias el problema.
y eso de la hora no creo que sera problema.

Me cuentas como te va, saludos.
MARCO DIAZ
Ing_Marco
Bachiller Ing de Sistemas.
UNT
Trujillo-Peru

spiderman16

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datatime
« Respuesta #4 en: Jueves 15 de Mayo de 2008, 03:40 »
0
diculpa pero la verdad no entiendo como lo puedo convertir, si puedes ayudarme con eso te lo agredeceria mucho ya que el formato que  me manda el datapicker es el que mande en el mensaje pasado, muchas gracias por tú ayuda...

spiderman16

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datatime
« Respuesta #5 en: Viernes 30 de Mayo de 2008, 03:27 »
0
Por favor ayuda no logro insertar el fecha en sql2005 ayuda... :(
error:
Conversion failed when converting datetime from character string

oscarb

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Datatime
« Respuesta #6 en: Miércoles 4 de Junio de 2008, 04:51 »
0
Hola mira hazlo de esta forma DateTimePicker1.Value.Date.ToString("s") y si quieres mirate este articulo.

www.onglasses.net//default.aspx?articuloid=129

puede que des con el problema.

mx_latino

  • Miembro activo
  • **
  • Mensajes: 91
  • Nacionalidad: ec
    • Ver Perfil
Re: Datatime
« Respuesta #7 en: Miércoles 4 de Junio de 2008, 22:04 »
0
No te hagas tanto lio compadre lo que estas haciendo esta bien, si asi como lo quieres hacer.. lo que parece es que tienes algunos errores de conversion de datos, cuando vayas a mandar enteros o  decimal  no hace falta que pongas las comillas simples y si el campo de la fecha es datetime pues no mandes como string sino como datetime   :rolleyes:

Código: Text
  1. SqlCommand cmd = new SqlCommand("use escuela insert into dbo.alumnos values('" + Convert.ToInt32(this.txtcontrol.Text) + "', '" + this.txtnombre.Text.Trim() + "', '" + this.txtapellidop.Text.Trim() + "','" + this.txtapellidom.Text.Trim() + "','" + this.txtreferencias.Text.Trim() + "','" + Convert.ToInt32(this.txtsemestre.Text.Trim()) + "','" + this.txtfecha.Text.Trim() + "','" + this.txtgrupo.Text.Trim() + "','" + this.txtcarrera.Text.Trim() + "')", cone.conn);
  2.  

Alli esta la cadena modificada.. pruebala a ver, seria bueno que pongas un punto de interrupcion a que veas que string estas mandando a la ejecutar....

Código: Text
  1.  
  2. String CadenaSql = String.Empty;
  3. CadenaSql = "use escuela insert into dbo.alumnos values("+Convert.ToInt32(this.txtcontrol.Text) + ", '" + this.txtnombre.Text.Trim() + "', '" + this.txtapellidop.Text.Trim() + "','" + this.txtapellidom.Text.Trim() + "','" + this.txtreferencias.Text.Trim() + "'," + Convert.ToInt32(this.txtsemestre.Text.Trim()) + ",'" + Convert.ToDateTime(this.txtfecha.Text) + "','" + this.txtgrupo.Text.Trim() + "','" + this.txtcarrera.Text.Trim() + "')";
  4. SqlCommand cmd = new SqlCommand(CadenaSql, cone.conn);
  5.  

Saludos y suerte...  :comp:

spiderman16

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datatime
« Respuesta #8 en: Jueves 5 de Junio de 2008, 18:29 »
0
por estos rumbos igual muchas gracias mx_latino acabo de encontrar como insertarlo a la bd sin cambiar nada y con el mismo tipo de datos paso el código po si alguien esta m :), @valor es mi variable o no se como llamarle para insertar mi fecha por medio de command.Parameters.AddWithValue chequenlo alguna duda con gusto ayudare

try
            {
                // BeginTransaction() Requires Open Connection
                c.Open();

                transaction = c.BeginTransaction();

                // Assign Transaction to Command
                command.Transaction = transaction;

                // Execute 1st Command
                command.CommandText = "INSERT INTO alumnos (n_control,nombre, apellidop, apellidom,referenias,semestre,fecha,grupo,carrera) Values('" + Convert.ToInt32(this.txtcontrol.Text) + "','" + this.txtnombre.Text + "','" + this.txtapellidom.Text + "', '" + this.txtapellidop.Text + "','" + this.txtreferencias.Text + "','" + Convert.ToInt32 (this.txtsemestre.Text) + "',@valor,'" + this.txtgrupo.Text + "','" + this.txtcarrera.Text + "')";

                //DateTime parametroFecha = DateTime.Now;
                //parametroFecha = Convert.ToDateTime(dateTimePicker1.Text);
                command.Parameters.AddWithValue("@VALOR", Convert.ToDateTime(dateTimePicker1.Text));

                command.ExecuteNonQuery();

                //Execute 2nd Command
                command.CommandText = "Update alumnos set n_control = 10 where nombre = 'pedro' ";
                command.ExecuteNonQuery();

                transaction.Commit();
            }