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

[SOLUCIONADO] Pasar fechas de formulario a Base de datos Mysql

Estas en el tema de Pasar fechas de formulario a Base de datos Mysql en el foro de .NET en Foros del Web. Wenas soy nuevo en esto de la programacion actualmente estoy intentando obtener unos datos de un formulario que estoy creando en visual studio 2012 y ...
  #1 (permalink)  
Antiguo 27/08/2013, 08:57
 
Fecha de Ingreso: julio-2013
Ubicación: Colombia
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 0
Pasar fechas de formulario a Base de datos Mysql

Wenas soy nuevo en esto de la programacion actualmente estoy intentando obtener unos datos de un formulario que estoy creando en visual studio 2012 y llevo todo a una base de dados en Mysql una parte necesito que sea almacenada un par de fechas que tengo en el formulario la fecha en la que es guardado y la fecha de entrega pero al momento de darle al boton guardar me da un error lo que tengo desarrollado es lo siguiente :

---------------------------
Imports MySql.Data
Imports MySql.Data.MySqlClient 'referencia agregada

Public Class Laboratorios
Private dt As DataTable
Private da As MySqlDataAdapter
Dim fila As Integer

Private Sub Laboratorios_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Dim fecha As String ' Procedimiento para cambiar la fecha a formato MySql
'fecha = Format(txtfechaentrega.Value.Date, "yyyy-MM-dd")
fecha = txtfechaentrega.Value.Date.ToString("YYYY-MM-DD")

Textfechaingresado.Text = DateTime.Now().ToString("yyyy-dd-mm hh:mm:ss")
'Textfechaingresado.Text = DateTime.Now().ToString("yyyy/dd/mm hh:mm:ss tt")
'crear la conexion

Dim oConexion As MySqlConnection
oConexion = New MySqlConnection
oConexion.ConnectionString = "Server=localhost;Database=prueba;Uid=root;Pwd=*** **;"
Dim sSel As String = "SELECT * FROM sel_lab ORDER BY idlaboratorios"

Try
da = New MySqlDataAdapter(sSel, oConexion)
dt = New DataTable
da.Fill(dt)
Catch ex As Exception
MsgBox("ERROR DE CONECCION")

End Try

'combobox
cbolab.DataSource = dt
cbolab.DisplayMember = "laboratorio"
cbolab.ValueMember = "idlaboratorios"

End Sub

Private Sub guardarremisiones_Click(sender As Object, e As EventArgs) Handles guardarremisiones.Click

'crear la conexion
Dim oConexion As MySqlConnection
oConexion = New MySqlConnection
oConexion.ConnectionString = "Server=localhost;Database=prueba;Uid=root;Pwd=*** **;"
oConexion.Open()

Dim sSel As String = "insert into laboratorios72(caja,factura,laboratorio,fecha_entr ega,fecha_ingresado)values(?caja, ?factura, ?lab, ?fechaentrega, ?fechaingreso)"

Dim cmd As New MySqlCommand(sSel, oConexion)
cmd.Parameters.AddWithValue("?caja", txtcaja.Text)
cmd.Parameters.AddWithValue("?factura", txtfactura.Text)
cmd.Parameters.AddWithValue("?lab", cbolab.Text)
cmd.Parameters.AddWithValue("?fechaentrega", CDate(txtfechaentrega.Text))

cmd.Parameters.AddWithValue("?fechaingreso", DateTime.Parse(Textfechaingresado.Text))
cmd.ExecutenonQuery()

Dim Ds As New DataSet
Dim tabla As New DataTable
Dim objadap As New MySqlDataAdapter(sSel, oConexion)
oConexion.Open()
objadap.Fill(tabla)


End Sub

Private Sub MostrarRemisiones_Click(sender As Object, e As EventArgs) Handles MostrarRemisiones.Click
Dim ConsStr As String
ConsStr = "Server=localhost;Database=prueba;Uid=root;Pwd=*** **;"

'variable de conexión
Dim Con As New MySqlConnection(ConsStr)
'variable dataaset
Dim Ds As New DataSet
'variable tabla
Dim tabla As New DataTable

Dim da As New MySqlDataAdapter("select * from laboratorios72 ", Con)

'capturamos errores
Try
'ejecutamos la querry q tienes el dataadapter
Dim cmd As New MySqlCommandBuilder(da)
'llenamos la tabla
da.Fill(tabla)
'muestro datos
DGVRemisiones.DataSource = tabla

Catch ex As Exception
'en caso de error
MsgBox("ERROR DE CONECCION")


End Try
End Sub
End Class

--------------------------------
la base de datos de mysql la tengo configurada para los datos de la fecha asi:

fecha_entrega = DATE

fecha_ingresado = DATATIME

no se si por esto me da el error a la hora de convertir.

Espero alguna otra indicacion o sugerencia ya que me e pasado leyendo al respecto sobre la solucion pero no consigo solucionarlo el error supuestamente radica en el formato de los datos que mysql los lee YYYY-MM-DD y visual DD-MM-YYYY

Gracias otra vez por tu pronta respuesta
  #2 (permalink)  
Antiguo 27/08/2013, 09:09
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: Pasar fechas de formulario a Base de datos Mysql

Si el tipo de dato en la tabla de MySQL es DATETIME, simplemente le pasas una variable de clase DateTime. Nada más.
No necesitas hacer extrañas y rebuscadas conversiones. El conector MySQL.Net toma el DateTime, y lo pasa a la base como DATETIME... Esa tarea es de la dll de MySQL.
Sólo tendría sentido que hicieras todo ese trabajo si vas a poner la fecha como un string dentro de una cadena en la que construyes el ISERT. Pero si estás trabajando sentencia parametrizadas, no.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/08/2013, 10:12
 
Fecha de Ingreso: julio-2013
Ubicación: Colombia
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Pasar fechas de formulario a Base de datos Mysql

gracias por contestar , respecto a tu respuesta eso me gustaria creer q deberia hacer la conversion el programa sin problema ya que son fechas pero por algun motivo me dice q hay un error
No se puede reconocer la cadena como valor DateTime válido.

en la linea:

cmd.Parameters.AddWithValue("?fechaingreso", Convert.ToDateTime(Textfechaingresado.Text))

si tienes alguna sugerencia de como puedo cambiar mi codigo para solucionarlo lo apreciaria , gracias otra vez
  #4 (permalink)  
Antiguo 27/08/2013, 10:45
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: Pasar fechas de formulario a Base de datos Mysql

¿Me puedes explicar para qué conviertes la fecha a string?
Código vb:
Ver original
  1. cmd.Parameters.AddWithValue("?fechaingreso", Convert.ToDateTime(Textfechaingresado.Text))
Lo que te estoy planteando es simplemente esto:
Código vb:
Ver original
  1. Dim fecha As DateTime
  2. fecha = txtfechaentrega.Value

y luego:
Código vb:
Ver original
  1. cmd.Parameters.AddWithValue("?fechaentrega", fecha)

Es decir: Usa los tipos de dato correcto: Decimal para los FLOAT, Boolean para los BOOL, Uint32 para los INT UNSIGNED, String para los VARCHAR, TimeSpan para los TIME y DateTime para los DATETIME y TIMPESTAMP.
No tiene ningún sentido, ni utilidad que envíes a losparámetros tipos de dato que no son los de la tabla.
Obligas al DBMS a generar conversiones implícitas y por sobre todo escondes los errores de la definición de tipos en tu aplicación, cosa que es una muy mala práctica.
Precisamente, el hecho de que se disparen errores de tipo de dato por defectos en la construccion de los métodos, te ayuda a saber qué cosas están bien hechas en la aplicación y qué parámetros que se envían a la base van a causar problemas de datos en algún momento.
Este tipo de cosas te ayudará a crear codigo mejor, evitando los vicios de programar mal.
__________________
¿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; 27/08/2013 a las 10:57
  #5 (permalink)  
Antiguo 27/08/2013, 11:30
 
Fecha de Ingreso: julio-2013
Ubicación: Colombia
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Pasar fechas de formulario a Base de datos Mysql

bueno cambie lo que me decias y ademas cambie los valores en la tabla a datatime antes tenia uno date y otro datatime quedo asi

Private Sub Laboratorios_Load(sender As Object, e As EventArgs) Handles MyBase.Load



Textfechaingresado.Text = DateTime.Now() hh:mm:ss")

'crear la conexion
Dim oConexion As MySqlConnection
oConexion = New MySqlConnection
oConexion.ConnectionString = "Server=localhost;Database=prueba;Uid=root;Pwd=*** **;"
Dim sSel As String = "SELECT * FROM sel_lab ORDER BY idlaboratorios"

Try
da = New MySqlDataAdapter(sSel, oConexion)
dt = New DataTable
da.Fill(dt)
Catch ex As Exception
MsgBox("ERROR DE CONECCION")

End Try

'combobox
cbolab.DataSource = dt
cbolab.DisplayMember = "laboratorio"
cbolab.ValueMember = "idlaboratorios"

End Sub

Private Sub guardarremisiones_Click(sender As Object, e As EventArgs) Handles guardarremisiones.Click

'crear la conexion
Dim oConexion As MySqlConnection
oConexion = New MySqlConnection
oConexion.ConnectionString = "Server=localhost;Database=prueba;Uid=root;Pwd=*** **;"
oConexion.Open()

Dim sSel As String = "insert into laboratorios72(caja,factura,laboratorio,fecha_entr ega,fecha_ingresado)values(?caja, ?factura, ?lab, ?fechaentrega, ?fechaingreso)"

Dim cmd As New MySqlCommand(sSel, oConexion)
cmd.Parameters.AddWithValue("?caja", txtcaja.Text)
cmd.Parameters.AddWithValue("?factura", txtfactura.Text)
cmd.Parameters.AddWithValue("?lab", cbolab.Text)

cmd.Parameters.AddWithValue("?fechaentrega", txtfechaentrega.Value)
cmd.Parameters.AddWithValue("?fechaingreso", Textfechaingresado.Text)

cmd.ExecuteNonQuery()

Dim Ds As New DataSet
Dim tabla As New DataTable
Dim objadap As New MySqlDataAdapter(sSel, oConexion)
oConexion.Open()
objadap.Fill(tabla)


End Sub

-----------------------
pero me sigue dando un error

No se controló MySql.Data.MySqlClient.MySqlException
ErrorCode=-2147467259
HResult=-2147467259
Message=Incorrect datetime value: '2013-08-27 12:32:53 p.m.' for column 'fecha_ingresado' at row 1
Number=1292
Source=MySql.Data
StackTrace:
en MySql.Data.MySqlClient.MySqlStream.ReadPacket()
en MySql.Data.MySqlClient.NativeDriver.GetResult(Int3 2& affectedRow, Int64& insertedId)
en MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
en MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
en MySql.Data.MySqlClient.MySqlDataReader.NextResult( )
en MySql.Data.MySqlClient.MySqlCommand.ExecuteReader( CommandBehavior behavior)
en MySql.Data.MySqlClient.MySqlCommand.ExecuteReader( )
en MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuer y()
en SD_Opticas.Laboratorios.guardarremisiones_Click(Ob ject sender, EventArgs e) en C:\Users\CONTABILIDAD 84\Documents\Visual Studio 2012\Projects\SD Opticas\SD Opticas\Laboratorios.vb:línea 58
en System.Windows.Forms.Control.OnClick(EventArgs e)
en System.Windows.Forms.Button.OnClick(EventArgs e)
en System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
en System.Windows.Forms.Control.WndProc(Message& m)
en System.Windows.Forms.ButtonBase.WndProc(Message& m)
en System.Windows.Forms.Button.WndProc(Message& m)
en System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
en System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
en System.Windows.Forms.NativeWindow.DebuggableCallba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
en System.Windows.Forms.UnsafeNativeMethods.DispatchM essageW(MSG& msg)
en System.Windows.Forms.Application.ComponentManager. System.Windows.Forms.UnsafeNativeMethods.IMsoCompo nentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
en System.Windows.Forms.Application.ThreadContext.Run MessageLoopInner(Int32 reason, ApplicationContext context)
en System.Windows.Forms.Application.ThreadContext.Run MessageLoop(Int32 reason, ApplicationContext context)
en System.Windows.Forms.Application.Run(ApplicationCo ntext context)
en Microsoft.VisualBasic.ApplicationServices.WindowsF ormsApplicationBase.OnRun()
en Microsoft.VisualBasic.ApplicationServices.WindowsF ormsApplicationBase.DoApplicationModel()
en Microsoft.VisualBasic.ApplicationServices.WindowsF ormsApplicationBase.Run(String[] commandLine)
en SD_Opticas.My.MyApplication.Main(String[] Args) en 17d14f5c-a337-4978-8281-53493378c1071.vb:línea 81
en System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
en System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
en Microsoft.VisualStudio.HostingProcess.HostProc.Run UsersAssembly()
en System.Threading.ThreadHelper.ThreadStart_Context( Object state)
en System.Threading.ExecutionContext.RunInternal(Exec utionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
en System.Threading.ExecutionContext.Run(ExecutionCon text executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
en System.Threading.ExecutionContext.Run(ExecutionCon text executionContext, ContextCallback callback, Object state)
en System.Threading.ThreadHelper.ThreadStart()
InnerException:
  #6 (permalink)  
Antiguo 27/08/2013, 11:36
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: Pasar fechas de formulario a Base de datos Mysql

¿Y no te parece que deberías hacer lo mismo con todos los parámetros de fecha?
¿Por qué sigue estando esto:
Código vb:
Ver original
  1. cmd.Parameters.AddWithValue("?fechaingreso", Textfechaingresado.Text)

Para que quede más claro:
Código vb:
Ver original
  1. ' ¿CAJA es un campo VARCHAR?
  2. cmd.Parameters.AddWithValue("?caja", txtcaja.Text)
  3.  
  4. ' ¿La FACTURA es VARCHAR?
  5. cmd.Parameters.AddWithValue("?factura", txtfactura.Text)
  6.  
  7. ' ¿LAB es VARCHAR?
  8. cmd.Parameters.AddWithValue("?lab", cbolab.Text)
  9.  
  10. ' Este es el único que parece estar bien
  11. cmd.Parameters.AddWithValue("?fechaentrega", txtfechaentrega.Value)
  12.  
  13. ' ¿No te parece que esto deberías se hecho de la misma forma que el anterior?
  14. cmd.Parameters.AddWithValue("?fechaingreso", Textfechaingresado.Text)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 27/08/2013, 11:53
 
Fecha de Ingreso: julio-2013
Ubicación: Colombia
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Pasar fechas de formulario a Base de datos Mysql

si perdona lo vi despues ya cambie esto Gracias por la ayuda otra vez para responder a tu pregunta

' ¿CAJA es un campo VARCHAR? Si es VARCHAR(4)
cmd.Parameters.AddWithValue("?caja", txtcaja.Text)

' ¿La FACTURA es VARCHAR? Si es VARCHAR(5)
cmd.Parameters.AddWithValue("?factura", txtfactura.Text)

' ¿LAB es VARCHAR? Si es VARCHAR(20)
cmd.Parameters.AddWithValue("?lab", cbolab.Text)

' Este es el único que parece estar bien ---> este es DATATIME
y lo capto de un datetimepicker en el formulario
cmd.Parameters.AddWithValue("?fechaentrega", txtfechaentrega.Value)


' ¿No te parece que esto deberías se hecho de la misma forma que el anterior?
este es DATATIME y lo campo de un TextBox en el formulario
cmd.Parameters.AddWithValue("?fechaingreso", Textfechaingresado.Text)

----------------------------------------------------
continuando cambie el codigo

Private Sub guardarremisiones_Click(sender As Object, e As EventArgs) Handles guardarremisiones.Click

Dim fecha As DateTime
fecha = txtfechaentrega.Value

'crear la conexion
Dim oConexion As MySqlConnection
oConexion = New MySqlConnection
oConexion.ConnectionString = "Server=localhost;Database=prueba;Uid=root;Pwd=*** **;"
oConexion.Open()

Dim sSel As String = "insert into laboratorios72(caja,factura,laboratorio,fecha_entr ega,fecha_ingresado)values(?caja, ?factura, ?lab, ?fechaentrega, ?fechaingreso)"

Dim cmd As New MySqlCommand(sSel, oConexion)
cmd.Parameters.AddWithValue("?caja", txtcaja.Text)
cmd.Parameters.AddWithValue("?factura", txtfactura.Text)
cmd.Parameters.AddWithValue("?lab", cbolab.Text)
'cmd.Parameters.AddWithValue("?fechaentrega", CDate(txtfechaentrega.Text))
'cmd.Parameters.AddWithValue("?fechaingreso", DateTime.Parse(Textfechaingresado.Text))
cmd.Parameters.AddWithValue("?fechaentrega", txtfechaentrega.Value)
cmd.Parameters.AddWithValue("?fechaingreso", fecha)

cmd.ExecuteNonQuery()

Dim Ds As New DataSet
Dim tabla As New DataTable
Dim objadap As New MySqlDataAdapter(sSel, oConexion)
'oConexion.Open()
objadap.Fill(tabla)


End Sub
----------------------------------------------------
me arroja este error ahora pero no tengo idea del porque

No se controló MySql.Data.MySqlClient.MySqlException
ErrorCode=-2147467259
HResult=-2147467259
Message=Fatal error encountered during command execution.
Number=0
Source=MySql.Data
-----------------------------------------------------
parece ser que el problema de la fecha quedo resuelto pero sigue sin guardarme en la BD los valores q capto en el formulario
  #8 (permalink)  
Antiguo 27/08/2013, 12:28
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: Pasar fechas de formulario a Base de datos Mysql

No estás capturando las excepciones en la ejecución.
Todo programa debe tener un control Try/Catch para evitar ese tipo de problemas
Código vb:
Ver original
  1. Try
  2.     ' Aca va el cuerpo del codigo
  3. Catch e As MySqlException
  4.     ' Acá se pone todo lo que se quiere hacer o mostrar en caso de una Exception de MySQL
  5. Catch ex As Exception
  6.     ' Acá el resto de las excepciones
  7. End Try
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 27/08/2013, 12:47
 
Fecha de Ingreso: julio-2013
Ubicación: Colombia
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Pasar fechas de formulario a Base de datos Mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No estás capturando las excepciones en la ejecución.
Todo programa debe tener un control Try/Catch para evitar ese tipo de problemas
Código vb:
Ver original
  1. Try
  2.     ' Aca va el cuerpo del codigo
  3. Catch e As MySqlException
  4.     ' Acá se pone todo lo que se quiere hacer o mostrar en caso de una Exception de MySQL
  5. Catch ex As Exception
  6.     ' Acá el resto de las excepciones
  7. End Try
-----------------------------
a ok si ya lo coloque dentro de un control try/catch y ya hace lo que le pido sigo sin poder gurdar los datos en la BD ya que me pone el msg q coloco en el ex pero supongo que sera un problema en como e programado lo de el dataset y el datatable voy a buscar bien como soluciono esto para poder almacenar mis datos muchas gracias por tu ayuda me esta siendo muy provechosa para aprender y comprender como funciona todo y poder seguir adelante con mi proyecto, si tienes alguna sugerencia bien resibida sera.
Gracias otra vez

Try
Dim Ds As New DataSet
Dim tabla As New DataTable
Dim objadap As New MySqlDataAdapter(sSel, oConexion)
oConexion.Open()
objadap.Fill(tabla)
oConexion.Close()

Catch ex As Exception

' Acá el resto de las excepciones
'en caso de error
MsgBox("ERROR DE CONECCION")
End Try
  #10 (permalink)  
Antiguo 27/08/2013, 13:13
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: Pasar fechas de formulario a Base de datos Mysql

No veo en ese código que estés mostrando el mensaje que devuelve MySQL.
Mirqa los ejemplos de la documentación correspondiente: MySqlException
Es tan simple como:
Código vb:
Ver original
  1. Dim mySelectQuery As String = "SELECT column1 FROM table1"
  2. Dim myConnection As New MySqlConnection ("Data Source=localhost;Database=Sample;")
  3. Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
  4. Try
  5.     myCommand.Connection.Open()
  6. Catch e As MySqlException
  7.     MessageBox.Show( e.Message )
  8.     ' Todo objeto de clase Exception en cualquiera de sus herencias, tiene un mensaje. USALO.
  9. End Try
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 27/08/2013, 14:03
 
Fecha de Ingreso: julio-2013
Ubicación: Colombia
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Pasar fechas de formulario a Base de datos Mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No veo en ese código que estés mostrando el mensaje que devuelve MySQL.
Mirqa los ejemplos de la documentación correspondiente: [URL="http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqlexception.html"]MySqlException[/URL]
Es tan simple como:
Código vb:
Ver original
  1. Dim mySelectQuery As String = "SELECT column1 FROM table1"
  2. Dim myConnection As New MySqlConnection ("Data Source=localhost;Database=Sample;")
  3. Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
  4. Try
  5.     myCommand.Connection.Open()
  6. Catch e As MySqlException
  7.     MessageBox.Show( e.Message )
  8.     ' Todo objeto de clase Exception en cualquiera de sus herencias, tiene un mensaje. USALO.
  9. End Try
si lo estoy intentando pero me pone
Error 1 La variable 'e' oculta una variable en un bloque de inclusión.

el catch ex si me lo permite pero esa solo me pone el msg q yo pongo asi q no se a que se debera q no me deje poner este sigo revisando y leyendo gracias
  #12 (permalink)  
Antiguo 27/08/2013, 14:16
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: Pasar fechas de formulario a Base de datos Mysql

Cita:
Iniciado por netspider76 Ver Mensaje
si lo estoy intentando pero me pone
Error 1 La variable 'e' oculta una variable en un bloque de inclusión.

el catch ex si me lo permite pero esa solo me pone el msg q yo pongo asi q no se a que se debera q no me deje poner este sigo revisando y leyendo gracias
Postea el código completo de lo que estás haciendo en ese método (todo el Sub o la Function donde haces uso de las Exception).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 27/08/2013, 15:30
 
Fecha de Ingreso: julio-2013
Ubicación: Colombia
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Pasar fechas de formulario a Base de datos Mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Postea el código completo de lo que estás haciendo en ese método (todo el Sub o la Function donde haces uso de las Exception).
Private Sub guardarremisiones_Click(sender As Object, e As EventArgs) Handles guardarremisiones.Click

Dim fecha As DateTime
fecha = txtfechaentrega.Value
'crear la conexion
Dim oConexion As MySqlConnection
oConexion = New MySqlConnection
oConexion.ConnectionString = "Server=localhost;Database=prueba;Uid=root;Pwd=*** **;"
oConexion.Open()

Dim sSel As String = "insert into laboratorios72(caja,factura,laboratorio,fecha_entr ega,fecha_ingresado)values(?caja, ?factura, ?lab, ?fechaentrega, ?fechaingreso)"

Dim cmd As New MySqlCommand(sSel, oConexion)
cmd.Parameters.AddWithValue("?caja", txtcaja.Text)
cmd.Parameters.AddWithValue("?factura", txtfactura.Text)
cmd.Parameters.AddWithValue("?lab", cbolab.Text)
'cmd.Parameters.AddWithValue("?fechaentrega", CDate(txtfechaentrega.Text))
'cmd.Parameters.AddWithValue("?fechaingreso", DateTime.Parse(Textfechaingresado.Text))
cmd.Parameters.AddWithValue("?fechaentrega", txtfechaentrega.Value)
cmd.Parameters.AddWithValue("?fechaingreso", fecha)
cmd.ExecuteNonQuery()
oConexion.Close()

Dim Ds As New DataSet
Dim tabla As New DataTable
Dim objadap As New MySqlDataAdapter(sSel, oConexion)

Try

oConexion.Open()
objadap.Fill(tabla)
oConexion.Close()

Catch e As MySqlException
' Acá se pone todo lo que se quiere hacer o mostrar en caso de una Exception de MySQL
'en caso de error

MessageBox.Show(e.Message)
'Catch ex As Exception

' Acá el resto de las excepciones
'en caso de error
'MsgBox("ERROR DE CONECCION")
End Try


End Sub
---------------

hay ta el sub completo
  #14 (permalink)  
Antiguo 27/08/2013, 16:28
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: Pasar fechas de formulario a Base de datos Mysql

Primero: Por favor, usa los Highlight que hay en el área de mensajes. De ese modo los códigos que postees se vuelven más legibles.

Segundo: te falta todavía mucha práctica para poder manejar la codificacion y los bloques de control de errores. También la secuencia lógica de creación e instanciación de objetos.
Código vb:
Ver original
  1. Private Sub guardarremisiones_Click(ByVal sender As Object, ByVal e As EventArgs) Handles guardarremisiones.Click
  2.         ' Primero crea todas las variables
  3.        Dim fecha As DateTime
  4.         Dim oConexion As MySqlConnection
  5.         Dim Ds As New DataSet
  6.         Dim tabla As New DataTable
  7.         Dim objadap As MySqlDataAdapter
  8.         Dim sSel As String
  9.         Dim cmd As MySqlCommand
  10.  
  11.         'Luego carga las necesarias para iniciar la conexion
  12.        oConexion = New MySqlConnection
  13.         oConexion.ConnectionString = "Server=localhost;Database=prueba;Uid=root;Pwd=*** **;"
  14.  
  15.         ' Despues el resto
  16.        sSel = "insert into laboratorios72(caja,factura,laboratorio,fecha_entr ega,fecha_ingresado)values(?caja, ?factura, ?lab, ?fechaentrega, ?fechaingreso)"
  17.         fecha = txtfechaentrega.Value
  18.  
  19.         ' finalmente, todas las que representen acciones, van en el bloque Try/Catch
  20.        ' Es decir, cualquier cosa que pueda dar lugar a erroes.
  21.        Try
  22.             oConexion.Open()
  23.             cmd = New MySqlCommand(sSel, oConexion)
  24.  
  25.             ' No se pueden asignar parámetros antres de crear el objeto de comandos
  26.            cmd.Parameters.AddWithValue("?caja", txtcaja.Text)
  27.             cmd.Parameters.AddWithValue("?factura", txtfactura.Text)
  28.             cmd.Parameters.AddWithValue("?lab", cbolab.Text)
  29.             cmd.Parameters.AddWithValue("?fechaentrega", txtfechaentrega.Value)
  30.             cmd.Parameters.AddWithValue("?fechaingreso", fecha)
  31.             objadap = New MySqlDataAdapter(sSel, oConexion)
  32.  
  33.             ' .Fill ejecuta la sentencia. El método ExecuteNonQuery es innecesario.
  34.            objadap.Fill(tabla)
  35.  
  36.             oConexion.Close()
  37.         Catch ex As MySqlException
  38.             ' Acá se pone todo lo que se quiere hacer o mostrar en caso de una Exception de MySQL
  39.            MessageBox.Show(ex.Message)
  40.         Catch ex As Exception
  41.             ' Acá el resto de las excepciones
  42.            MessageBox.Show(ex.Message)
  43.         End Try
Lee los manuales, en especial el manual de referencia y los ejemplos que allí se muestran.
Practica. No intentes crear un proyecto ahora, porque todo lo que hagas deberás rehacerlo más adelante.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 29/08/2013, 07:34
 
Fecha de Ingreso: julio-2013
Ubicación: Colombia
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Pasar fechas de formulario a Base de datos Mysql

ostia tio muchas gracias si en eso ando leyendo todo lo que encuentro lo que pasa es que aun no encuentro un camino que seguir ya que soy autodidacta en esto de la programacion y hay muchas opiniones que hace q se confundan los terminos o como utilizarlos bien si conoces un buen tutorial me gustaria leerlo .

implemente tu codigo y esta muy claro ya entendi lo que me decias ahora todo el codigo se ve mas organizado, lo unico es que ahora cuando ejecuto el form sigo con un error aunque ahora se porque gracias a tu consejo me dice

Fatal error encountered during command execution.

asi que ahora ando buscando sobre este error

Gracias otra vez
  #16 (permalink)  
Antiguo 29/08/2013, 08:57
 
Fecha de Ingreso: julio-2013
Ubicación: Colombia
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Pasar fechas de formulario a Base de datos Mysql

Ahora estoy guardando Los datos en la base de datos pero siempre salta el error de mysql q te comente antes

Etiquetas: formulario, mysql, sql, visual
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 07:07.