Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/06/2011, 15:20
Avatar de jhonwilliams
jhonwilliams
 
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 11 meses
Puntos: 76
Respuesta: guardar datos de un datetimepicker a una bd

Pues yo acostumbro a utilizar los SqlParameters para que el command no me ponga lio con los tipo de datos, algo como este emplo que busque en internet.

Código Vb.Net:
Ver original
  1. Private Sub Guardar_cambios_Click(ByVal sender As System.Object, ByVal e _
  2.     As System.EventArgs) Handles BtnGuardar_cambios.Click
  3.     'guardamos los cambios realizados
  4.     Dim sqlcadena As String
  5.     sqlcadena = New String("update vendedores set nombres=@nombres,apellidos=@apellidos," + _
  6.     "dirección=@dirección,e_civil=@civil,sexo=@sexo, sueldo=@sueldo,retirado=@retirado  where codigo=@codigo")
  7.     Dim ocmd As New SqlCommand
  8.     ocmd.Parameters.Add(New SqlParameter("@codigo", SqlDbType.Int)).Value = CboCodigo.Text
  9.     ocmd.Parameters.Add(New SqlParameter("@nombres", SqlDbType.Text, 25)).Value = Txtnom.Text.ToString
  10.     ocmd.Parameters.Add(New SqlParameter("@apellidos", SqlDbType.Text, 25)).Value = Txtapel.Text.ToString
  11.     ocmd.Parameters.Add(New SqlParameter("@dirección", SqlDbType.VarChar, 60)).Value = Txtdir.Text
  12.     ocmd.Parameters.Add(New SqlParameter("@sueldo", SqlDbType.Decimal)).Value = Txtsueldo.Text
  13.     Select Case CboCivil.Text
  14.         Case Is = "Casado"
  15.             ocmd.Parameters.Add("@civil", SqlDbType.Char, 1).Value = "C"
  16.         Case Is = "Soltero"
  17.             ocmd.Parameters.Add("@civil", SqlDbType.Char, 1).Value = "S"
  18.         Case Is = "Viudo"
  19.             ocmd.Parameters.Add("@civil", SqlDbType.Char, 1).Value = "V"
  20.         Case Is = "Divorciado"
  21.             ocmd.Parameters.Add("@civil", SqlDbType.Char, 1).Value = "D"
  22.     End Select
  23.  
  24.     If CboSexo.Text = "Masculino" Then
  25.         ocmd.Parameters.Add("@sexo", SqlDbType.Int, 1).Value = 1
  26.     ElseIf CboSexo.Text = "Femenino" Then
  27.         ocmd.Parameters.Add("@sexo", SqlDbType.Int, 1).Value = 0
  28.     End If
  29.     If chkRetirado.Checked = True Then
  30.         ocmd.Parameters.Add("@retirado", SqlDbType.Bit, 1).Value = chkRetirado.Checked
  31.     ElseIf chkRetirado.Checked = False Then
  32.         ocmd.Parameters.Add("@retirado", SqlDbType.Bit, 1).Value = chkRetirado.Checked
  33.     End If
  34.     conection.Open()
  35.     ocmd.CommandText = sqlcadena
  36.     ocmd.Connection = conection
  37.     ocmd.ExecuteNonQuery()
  38.     conection.Close()
  39. End Sub

Como puedes ver, en la linea

Código Vb.Net:
Ver original
  1. ocmd.Parameters.Add("@civil", SqlDbType.Char, 1).Value = "V"

Se esta especificando el tipo del dato y el tamaño, para el tipo Fecha seria algo como esto:

Código Vb.Net:
Ver original
  1. ocmd.Parameters.Add("@fecha", SqlDbType.DateTime).Value = miFecha

Ya que el tamaño no aplica para este tipo de dato.

Si tienes algún inconveniente para entender todo el código me comentas.

Todo el codigo del ejemplo aqui

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)