SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: spiderman16 en Miércoles 14 de Mayo de 2008, 18:24

Título: Datatime
Publicado por: spiderman16 en Miércoles 14 de Mayo de 2008, 18:24
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...
Título: Re: Datatime
Publicado por: yaG en Miércoles 14 de Mayo de 2008, 21:04
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)
Título: Re: Datatime
Publicado por: spiderman16 en Miércoles 14 de Mayo de 2008, 21:53
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
Título: Re: Datatime
Publicado por: ing_marco en Miércoles 14 de Mayo de 2008, 22:35
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.
Título: Re: Datatime
Publicado por: spiderman16 en Jueves 15 de Mayo de 2008, 03:40
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...
Título: Re: Datatime
Publicado por: spiderman16 en Viernes 30 de Mayo de 2008, 03:27
Por favor ayuda no logro insertar el fecha en sql2005 ayuda... :(
error:
Conversion failed when converting datetime from character string
Título: Re: Datatime
Publicado por: oscarb en Miércoles 4 de Junio de 2008, 04:51
Hola mira hazlo de esta forma DateTimePicker1.Value.Date.ToString("s") y si quieres mirate este articulo.

www.onglasses.net//default.aspx?articuloid=129 (http://www.onglasses.net//default.aspx?articuloid=129)

puede que des con el problema.
Título: Re: Datatime
Publicado por: mx_latino en Miércoles 4 de Junio de 2008, 22:04
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:
Título: Re: Datatime
Publicado por: spiderman16 en Jueves 5 de Junio de 2008, 18:29
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();
            }