none
Como mostrar fechas disponibles RRS feed

  • Pregunta

  • Hola a todos les comento tengo un formulario en el cual lo voy a ocupar para hacer digamos una reservación para que puedan tomar los alumnos una sesión informativa.

    Cabe mencionar que utilizo el framework 4 asi como SQL Server 2014

    En el formulario del lado del cliente tengo los siguientes campos:

    Campo

    Tipo

    ID

    Nombre *

    TextBox

    txtNombre

    Apellidos *

    TextBox

    txtApellidos

    Correo *

    TextBox

    txtCorreo

    Teléfono * 

    TextBox

    txtTel

    SESIÓN

    RadioButtonList

    rblOpciones

    Selecciona la fecha *

    RadDatePicker

    rdpCalendario

    Selecciona la hora *

    RadTimePicker

    rtpHorario

    Comentarios

    TextBox

    txtComenta

     

    Básicamente el formulario guarda todos los datos en una base de datos que se llama DB_AgendaEBS donde la tabla donde guardo los registros se llama Citas y los campos de esta tabla esta en de este tipo:

    Nombre de la columna

    Tipo de dato

     

    Ope_IdReg

    int

    primary key (autonumerico)

    Ope_Nombre

    varchar(100)

     

    Ope_Apellidos

    varchar(200)

     

    Ope_Correo

    varchar(100)

     

    Ope_Tipo

    varchar(10)

     

    Ope_Fecha

    date

     

    Ope_Hora

    varchar(15)

     

    Ope_Comentarios

    text

     

    Ope_FechaReg

    date

     

    Ope_Telefono

    varchar(15)

     

     

    Para guardar los datos utilizo una clase llamada clsRegistros y ahí tengo un método que se llama insertaRegistros el cual lo muestro

     

        public void insertaRegistros(string nombre, string apellidos, string correo, string telefono, string tipo,

                                      DateTime fecha, string hora, string comentarios, DateTime factualizada)

        {

            string query = string.Empty;

     

            query = @"insert into dbo.Citas

                        (Ope_Nombre, Ope_Apellidos, Ope_Correo, Ope_Telefono, Ope_Tipo, Ope_Fecha, Ope_Hora, Ope_Comentarios, Ope_FechaReg)

                         values

                        (@nombre, @apellidos, @correo, @telefono, @tipo, @fecha, @hora, @comentarios, @factualizada)";

     

            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["AgendaCNX"].ToString()))

            {

                conn.Open();

                SqlCommand cmd = new SqlCommand(query, conn);

                cmd.Parameters.AddWithValue("@nombre", nombre);

                cmd.Parameters.AddWithValue("@apellidos", apellidos);

                cmd.Parameters.AddWithValue("@correo", correo);

                cmd.Parameters.AddWithValue("@telefono", telefono);

                cmd.Parameters.AddWithValue("@tipo", tipo);

                cmd.Parameters.AddWithValue("@fecha", fecha);

                cmd.Parameters.AddWithValue("@hora", hora);

                cmd.Parameters.AddWithValue("@comentarios", comentarios);

                cmd.Parameters.AddWithValue("@factualizada", Convert.ToDateTime(factualizada));

                cmd.ExecuteNonQuery();

                conn.Close();

            }

        }

     

    Para realizar la inserción de los datos lo hago de esta manera:

    clsRegistros objRegistros = new clsRegistros();

        protected void btnEnvia_Click(object sender, EventArgs e)

        {

            try

            {

     

                string nombre = txtNombre.Text;

                string apellidos = txtApellidos.Text;

                string correo = txtCorreo.Text;

                string telefono = txtTel.Text;

                string tipo = Convert.ToString(rblOpciones.SelectedItem.Text);

                DateTime fecha = rdpCalendario.SelectedDate.Value;

                string hora = Convert.ToString(rtpHorario.SelectedDate.Value.ToShortTimeString());

                string comentarios = txtComenta.Text;

                DateTime factualizada = DateTime.Now;

     

                objRegistros.insertaRegistros(nombre, apellidos, correo, telefono, tipo, fecha, hora, comentarios, factualizada);

     

                string msjEnvia = @"<script type='text/javascript' - input100 validate - input bg1'>

                                  alert('! Se enviaron sus datos correctamente ¡ ');

                                  </script>";

     

                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", msjEnvia, false);

          

        }

            catch (Exception)

            {

                string msjError = @"<script type='text/javascript'>

                       alert('! Error no se puede insertar el registro ¡');

                       </script>";

     

        ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", msjError, false);

            }

     

    La duda que tengo es que tengo un botón que se llama btnFechas en el cual quiero que cuando le den click muestre las fechas que están disponibles y no las que esten ocupadas.

    martes, 23 de enero de 2018 15:58

Respuestas

  • hola cruci

    tendrias que hacer metodo en tu clase clsRegistros que pueda llamarse hmmm... FechasDisponiblesRegistros?

    public class clsRegistros
    {
    ....
    ..
    public void FechasDisponiblesRegistros(date fechaDisponibilidad)
    {
    query= "select Ope_fecha, Ope_Hora from dbo.citas where 
     NOT EXISTS (select Ope_fecha from tablaFechas)";//
    }
    }

    hacer una consulta o realizar un stored procedure como mejor te parezca y luego llamar este metodo del evento click del boton

    public void btnFechas_click()
    {
       objRegistros.FechasDisponiblesRegistros(//aca envias el parametro fecha a comparar);
    }

    suerte!

    • Propuesto como respuesta Pablo RubioModerator martes, 23 de enero de 2018 17:54
    • Marcado como respuesta crucifijo martes, 23 de enero de 2018 21:56
    martes, 23 de enero de 2018 17:04