les comento, estoy haciendo un programa en vb. net 2008 el cual me graba los decretos en una base de datos sql, hasta ahi todo bien. Tengo un boton para actualizar una maskedtextbox mi problema es cuando quiero actualizar la fecha del maskedtextbox me arroja el siguiente error:
la conversión del tipo de datos char a datetime produjo un valor datetime fuera de intervalo. Se terminó la instruccion.
el formato del maskedtextbox lo tengo en dd/MM/yyyy de las opciones del maskedtextbox que trae.
he aqui mi codigo
Código:
ojala me pudiesen ayudar que he buscado por internet y no encuentro la forma de hacerlo.Imports System.Data Imports System.Data.SqlClient Public Class Decreto Inherits System.Windows.Forms.Form Private ooConexion As SqlConnection Private oConexion As SqlConnection Private oDataSet As DataSet Private oDataRead As SqlDataReader Private odrd As SqlDataReader Private oDataAdapter As SqlDataAdapter Function LimpiarDatos() Me.TextBox1.Text = "" Me.TextBox2.Text = "" Me.TextBox3.Text = "" Me.TextBox4.Text = "" Me.TextBox5.Text = "" Me.Fecha.Text = "" Me.MaskedTextBox2.Text = "" Me.MaskedTextBox1.Text = "" Me.TextBox6.Text = "" Me.TextBox7.Text = "" End Function Private Sub Decreto_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load oConexion = New SqlConnection oConexion.ConnectionString = _ "Data Source=SISTEMAS; database=DOP; user id=administrador;password=napoleon" oDataAdapter = New SqlDataAdapter ooConexion = New SqlConnection ooConexion.ConnectionString = _ "Data Source=SISTEMAS; database=DOP; user id=administrador;password=napoleon" oDataAdapter = New SqlDataAdapter Dim ocmdUpdate As New SqlCommand("update decreto set fecha_llegada = '" & MaskedTextBox1.Text & "'" & _ "where Decreto_OP= '" & TextBox3.Text & "'", ooConexion) Dim ocmdInsercion As New SqlCommand("insert into Decreto" & _ "(UG,Des_Direccion,N_Doc_UG,Decreto_OP,Fecha_Decreto,Año,Materia,Fecha_Salida,Cod_DptoSalida,Dpto_Salida) values(@UG,@Des_Direccion,@N_Doc_UG,@Decreto_OP,@Fecha_Decreto,@Año,@Materia,@Fecha_Salida,@Cod_DptoSalida,@Dpto_Salida)", oConexion) oDataAdapter = New SqlDataAdapter("select * from decreto", ooConexion) Dim cb As SqlCommandBuilder = New SqlCommandBuilder(oDataAdapter) oDataSet = New DataSet oDataAdapter.Fill(oDataSet, "decreto") Dim bn As Binding bn = New Binding("text", oDataSet, "decreto.Fecha_Llegada") Me.MaskedTextBox1.DataBindings.Add(bn) bn = Nothing Me.bmb = Me.BindingContext(oDataSet, "decreto") oDataAdapter.InsertCommand = ocmdInsercion oDataAdapter.InsertCommand.Parameters.Add _ (New SqlParameter("@UG", SqlDbType.Int)) oDataAdapter.InsertCommand.Parameters.Add _ (New SqlParameter("@Des_Direccion", SqlDbType.VarChar)) oDataAdapter.InsertCommand.Parameters.Add _ (New SqlParameter("@N_Doc_UG", SqlDbType.Int)) oDataAdapter.InsertCommand.Parameters.Add _ (New SqlParameter("@Decreto_OP", SqlDbType.Int)) oDataAdapter.InsertCommand.Parameters.Add _ (New SqlParameter("@Fecha_Decreto", SqlDbType.DateTime)) oDataAdapter.InsertCommand.Parameters.Add _ (New SqlParameter("@Año", SqlDbType.VarChar)) oDataAdapter.InsertCommand.Parameters.Add _ (New SqlParameter("@Materia", SqlDbType.VarChar)) oDataAdapter.InsertCommand.Parameters.Add _ (New SqlParameter("@Fecha_Salida", SqlDbType.DateTime)) oDataAdapter.InsertCommand.Parameters.Add _ (New SqlParameter("@Cod_DptoSalida", SqlDbType.Int)) oDataAdapter.InsertCommand.Parameters.Add _ (New SqlParameter("@Dpto_Salida", SqlDbType.VarChar)) oDataAdapter.UpdateCommand = ocmdUpdate oDataAdapter.UpdateCommand.Parameters.Add _ (New SqlParameter("@Fecha_Llegada", SqlDbType.DateTime)) Dim oCmdConsulta As New SqlCommand("select * from Decreto", oConexion) oDataAdapter.SelectCommand = oCmdConsulta oDataSet = New DataSet oConexion.Close() ooConexion.Close() End Sub End Sub Private Sub Grabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Grabar.Click Dim iResultado As Integer oDataAdapter.InsertCommand.Parameters _ ("@UG").Value = Me.TextBox1.Text oDataAdapter.InsertCommand.Parameters _ ("@Des_Direccion").Value = Me.TextBox4.Text oDataAdapter.InsertCommand.Parameters _ ("@N_Doc_UG").Value = Me.TextBox2.Text oDataAdapter.InsertCommand.Parameters _ ("@Decreto_OP").Value = Me.TextBox3.Text oDataAdapter.InsertCommand.Parameters _ ("@Fecha_Decreto").Value = Me.Fecha.Text oDataAdapter.InsertCommand.Parameters _ ("@Año").Value = SelecAño.Año oDataAdapter.InsertCommand.Parameters _ ("@Materia").Value = Me.TextBox5.Text oDataAdapter.InsertCommand.Parameters _ ("@Fecha_Salida").Value = Me.MaskedTextBox2.Text oDataAdapter.InsertCommand.Parameters _ ("@Cod_DptoSalida").Value = Me.TextBox6.Text oDataAdapter.InsertCommand.Parameters _ ("@Dpto_Salida").Value = Me.TextBox7.Text oConexion.Open() iResultado = oDataAdapter.InsertCommand.ExecuteNonQuery() LimpiarDatos() oConexion.Close() MessageBox.Show("Datos Ingresados Correctamente:" & iResultado) End Sub Private Sub Limpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Limpiar.Click LimpiarDatos() End Sub Private Sub Actualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Actualizar.Click Dim iResultado As Integer oDataAdapter.UpdateCommand.Parameters _ ("@Fecha_Llegada").Value = Me.MaskedTextBox1.Text ooConexion.Open() iResultado = oDataAdapter.UpdateCommand.ExecuteNonQuery() LimpiarDatos() ooConexion.Close() MessageBox.Show("Dato Actualizado Correctamente:" & iResultado) End Sub End Class
De antemano muchas gracias
Saludos
Jorge