Guardar Fechas en SQL con C#

¡Hola!

En este post vamos a ver como guardar una fecha en SQL, en este post no voy a explicar como hacer la conexion a la base de datos ni como crear una nueva base de datos, pueden checar en los post anteriores para esos pasos.

Este post tiene como objetivo saber como insertar un dato tipo datetime, para todos aquellos que han tenido el error de “Error de conversión al convertir una cadena de caracteres a datetime.” mostraremos la solucion.

Agregaremos lo siguiente:

  • 3 Label.
  • 2 Textbox.
  • 2 Calendarios.
  • 1 Boton.

Tendra que tener una apariencia similar a la imagen.

Una vez que hayamos terminado el diseño del formulario pasaremos al código.

1-      Hacemos Doble Click al formulario y pondremos las siguientes propiedades.

private void Form1_Load(object sender, EventArgs e)

{

monthCalendar1.Visible = false;

monthCalendar2.Visible = false;

textBox1.ReadOnly = true;

textBox2.ReadOnly = true;

}

2-      Vamos a la vista diseño y seleccionamos el Text Box 1 y seleccionaremos la opción de eventos, buscaremos el evento Click Ver imagen, daremos doble click y nos mandara a la vista de código.

Ya estando en la vista de codigo nos aparecera lo siguiente.

private void textBox1_Click(object sender, EventArgs e)
{


}

Dentro del evento Click pondremos el Calendario 1 Visible y el Calendario 2 Invisible y quedaría el código de la siguiente manera.

private void textBox1_Click(object sender, EventArgs e)
{
monthCalendar1.Visible = true;
monthCalendar2.Visible = false;
}

3- Haremos lo mismos pasos para el Text Box 2 tendra que quedarnos asi para el Text Box 2.

private void textBox2_Click_1(object sender, EventArgs e)
{
monthCalendar2.Visible = true;
monthCalendar1.Visible = false ;
}

4- Vamos a la vista diseño y daremos doble click al calendario 1 en este caso como no cambie los nombres de los objetos en este caso es el monthCalendar1 nos creara el evento DateChanged, dentro del evento ingresaremos lo siguiente.

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
textBox1.Text = monthCalendar1.SelectionEnd.Date.ToString();
monthCalendar1.Visible =false;
}

5- Para el monthCalendar2 hacemos lo mismo y tendra que quedar algo asi.

private void monthCalendar2_DateChanged(object sender, DateRangeEventArgs e)
{
textBox2.Text = monthCalendar2.SelectionEnd.Date.ToString();
monthCalendar2.Visible = false;
}
Con esto podemos podemos probar la aplicacion antes de continuar.

Debemos de notar que:

  1. No podemos ingresar datos en los textbox.
  2. Al hacer Click en el textbox nos mostrara el calendario, una vez que seleccionemos alguna fecha se llena el textbox y desaparece el calendario.

Si todo va bien podemos continuar y ahora si podemos pasar a la parte importante de este tutorial.

6- Vamos a la vista diseño y daremos doble click  al botón que tenemos de objeto y escribimos lo siguiente.

private void button1_Click(object sender, EventArgs e)
{//Verificamos que no esten vacios los textbox
if (textBox1.Text == “” || textBox2.Text == “”)
{
MessageBox.Show(“Los campos no contienen datos”);
}
else
{

//Convertimos nuestros textbox a tipo de datos Date

DateTime fecha_inicial =Convert.ToDateTime(textBox1.Text); 
DateTime fecha_final = Convert.ToDateTime(textBox2.Text);

//Definimos nuestro Datasource
String datasource = @”Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Arturo\Documents\Visual Studio 2008\Projects\fechas\fechas\Database1.mdf;Integrated Security=True;User Instance=True”;

//Establecemos nuestra conexion

SqlConnection conexion = new SqlConnection(datasource);
conexion.Open();

//Creamos nuestra insert

String sql = “insert into fechas(fecha_inicial,fecha_final) values(@fecha_inicial,@fecha_final);”;//Fecha inicial y final pertenecen a nuestras variable DateTime que definimos al principio.
SqlCommand query =new SqlCommand(sql,conexion) ;

//Agregamos nuestros parametros de tipo dateTime  a nuestra consulta llamada “query”, aqui es donde le establecemos el valor de nuestro textbox pero con el valor datetime.
query.Parameters.Add(new SqlParameter(“@fecha_inicial“, SqlDbType.DateTime)).Value = fecha_inicial;
query.Parameters.Add(new SqlParameter(“@fecha_final“, SqlDbType.DateTime)).Value = fecha_final;

//ya establecidos los parametros ejecutamos el query
query.ExecuteNonQuery();

//Cerramos la conexion, mandamos un mensaje de aviso y limpiamos los campos de texto.
conexion.Close();
MessageBox.Show(“El Registro ha sido almacenado”, “Listo”, MessageBoxButtons.OK);
textBox1.Text = “”;
textBox2.Text = “”;
}
}

Así es cómo podemos guardar fechas en sql desde un formulario en c#.

Espero y les sirva este tutorial y dejen sus comentarios.

Y comenten acerca de qué tipo de tutoriales les gustaría que haga.

Saludos🙂.

Nota: Recuerden que si le hacen copy-paste deben volver a escribir los apostrofes y comillas por aquello del tipo de fuente que trae este tema de WordPress.

3 responses to this post.

  1. Posted by jorge on marzo 29, 2010 at 3:48 am

    muy bueno!

    estaria genial algun pequeño tutorial de como usar crystal reports? con visual c#?

    Responder

  2. Posted by Mary on abril 18, 2010 at 3:56 am

    Si apoyo a Jorge yo tambien estoy interesado en aprender sobre crystal reports. Ah! y el tutotial de fechas esta bueno!! Gracias por tu aporte!!

    Responder

  3. Posted by Eli on julio 2, 2010 at 8:35 pm

    Gracias por este blog me ha sido de gran utilidad te lo agradesco mucho y espero que sigas haciendo mas ya que son de gran utilidad

    Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: