ayuda con un programa en c# y sql server

Iniciado por irvincnt93, 7 Mayo 2015, 07:35 AM

0 Miembros y 1 Visitante están viendo este tema.

irvincnt93




la verdad desconocía que se podía subir imágenes al plantear una pregunta. Bueno entrando en materia les muestro una captura de pantalla de la app que me encuentro desarrollando. Al momento de Abrir la ventana se cargan los combobox de Periodo, Departamento, Materia, Profesor y tipo de Semestre. En la imagen, el datagridview se cargó con la información que substraigo de una tabla que se llama Actas de mi base de datos al darle clic al botón Mostrar todo.




en esta imagen les muestro el contenido de los combobox



Bien, les escribo que es lo que trato de hacer en este proyecto. La app es para administrar las actas de calificaciones que recibe el encargado de servicio escolares, y en esta ventana hago las consultas de las actas que ya se encuentran dentro del sistema, como ven, en los combobox cargo de manera automática información que esta almacenada en algunas tablas.

las búsquedas que tengo que realizar son una combinación de los 5 combobox que tengo en la parte derecha de la primera imagen. Puedo hacer la búsqueda de:

- solo los del periodo tal
- periodo tal con tal departamento
- periodo tal con tal materia
- tal departamento con la tipodesemestre...
- y las combinaciones que se me ocurran...

Tengo 2 botones:

1.-el de Mostrar todo su nombre lo dice todo.
2.- Filtrar, le doy clic después de seleccionar la combinación de comobox que quiero para las búsquedas..

les muestro todo el código que tengo en este formulario para que me corrijan vale.. y mas adelante les explico los tipo de fallas que tengo, no me sale ningún error pero no me muestra los resultado que debe de mostrarme..



namespace ActasFinal
{
    public partial class Form2 : Form
    {
       
        public Form2()
        {
            InitializeComponent();
        }

        DataSet ds = new DataSet();
        private void Form2_Load(object sender, EventArgs e)
        {
            loadComboPeriodo();
            loadComboDepartamento();
            loadComboMate();
            loadComboProfesor();
            loadComboTipoSemestre();
        }

        //boton Mostrar todo
        private void button2_Click(object sender, EventArgs e)
        {
            cargarActas("");
         
        }
        public void cargarActas(String Filtro)
        {
            SqlDataReader dr;
            string cadenaconexion = @"Data Source=IRONGIO-PC;Initial Catalog=itiz;Integrated Security=True";
            SqlConnection conexion = new SqlConnection();
            SqlCommand comando = new SqlCommand();

            conexion.ConnectionString = cadenaconexion;
            comando.Connection = conexion;
            comando.CommandText = "select idacta, PE.nombrePeriodo, DE.nombreDpto, MA.nombreMateria, PR.nombreProfesor, TS.nombreTipoSemestre, grupo, clave, folio, ruta" +
                                   " from Actas A join Periodos PE on A.idperi = PE.idperi" +
                                   " join Departamentos DE on A.iddpto = DE.iddpto" +
                                   " join Materias MA on A.idmate = MA.idmate" +
                                   " join Profesores PR on A.idprofe = PR.idprofe" +
                                   " join TipoSemestre TS on A.idtiposem = TS.idtiposem WHERE 1=1 " + Filtro;

            comando.CommandType = CommandType.Text;
            conexion.Open();
            dgvActas.Rows.Clear();
            dr = comando.ExecuteReader();


            while (dr.Read())
            {
                int renglon = dgvActas.Rows.Add();
                dgvActas.Rows[renglon].Cells["id_acta"].Value = dr.GetInt32(dr.GetOrdinal("idacta")).ToString();
                dgvActas.Rows[renglon].Cells["id_peri"].Value = dr.GetString(dr.GetOrdinal("nombrePeriodo"));
                dgvActas.Rows[renglon].Cells["id_dpto"].Value = dr.GetString(dr.GetOrdinal("nombreDpto"));
                dgvActas.Rows[renglon].Cells["id_mate"].Value = dr.GetString(dr.GetOrdinal("nombreMateria"));
                dgvActas.Rows[renglon].Cells["id_profe"].Value = dr.GetString(dr.GetOrdinal("nombreProfesor"));
                dgvActas.Rows[renglon].Cells["id_tiposem"].Value = dr.GetString(dr.GetOrdinal("nombreTipoSemestre"));
                dgvActas.Rows[renglon].Cells["grupo"].Value = dr.GetString(dr.GetOrdinal("grupo"));
                dgvActas.Rows[renglon].Cells["clave"].Value = dr.GetString(dr.GetOrdinal("clave"));
                dgvActas.Rows[renglon].Cells["folio"].Value = dr.GetString(dr.GetOrdinal("folio"));
                dgvActas.Rows[renglon].Cells["ruta"].Value = dr.GetString(dr.GetOrdinal("ruta"));
            }


            conexion.Close();
        }

        //boton filtrar
        private void filtrar_Click(object sender, EventArgs e)
        {
            String Filtro = "";

            if (comboBox1.SelectedIndex != 0)
            {
                Filtro += " and  A.idperi= " + comboBox1.SelectedValue.ToString();

            }
            if (comboBox2.SelectedIndex != 0)
            {
                Filtro = " and A.iddpto = " + comboBox2.SelectedValue.ToString();


            }
            if (comboBox3.SelectedIndex != 0)
            {
                Filtro += " and  A.idmate= " + comboBox3.SelectedValue.ToString();


            }
            if (comboBox4.SelectedIndex != 0)
            {
                Filtro += " and  A.idprofe= " + comboBox4.SelectedValue.ToString();


            }
            if (comboBox5.SelectedIndex != 0)
            {
                Filtro += " and  A.idtiposem= " + comboBox5.SelectedValue.ToString();


            }

            this.cargarActas(Filtro);
        }

        //Permite al la columna Ruta del datagritview abrir la ruta de la imagen haciendo doble clic
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            string sUrl = dgvActas.Rows[e.RowIndex].Cells[9].Value.ToString();
            ProcessStartInfo sInfo = new ProcessStartInfo(sUrl);
            Process.Start(sInfo);
        }


        //cargo el combobox 1 con los datos de Periodo
        private void loadComboPeriodo()
        {
            comboBox1.DataSource = sentencias.AllPeriodos();
            comboBox1.DisplayMember = "nombrePeriodo";
            comboBox1.ValueMember = "idperi";

        }

        //cargo el combobox 2 con los datos de Dpto
        private void loadComboDepartamento()
        {
            comboBox2.DataSource = sentencias.AllDepartamentos();
            comboBox2.DisplayMember = "nombreDpto";
            comboBox2.ValueMember = "iddpto";
        }

        //cargo el combobox 3 con los datos de Materia
        private void loadComboMate()
        {
            comboBox3.DataSource = sentencias.AllMateriasByDpto();
            comboBox3.DisplayMember = "nombreMateria";
            comboBox3.ValueMember = "idmate";

        }

        //cargo el combobox4 con los datos de Profesores
        private void loadComboProfesor()
        {
            comboBox4.DataSource = sentencias.AllProfesores();
            comboBox4.DisplayMember = "nombreProfesor";
            comboBox4.ValueMember = "idprofe";
        }

        //cargo el combobox 5 con los datos de Tiposemestre
        private void loadComboTipoSemestre()
        {
            comboBox5.DataSource = sentencias.AllTipoSemestre();
            comboBox5.DisplayMember = "nombreTipoSemestre";
            comboBox5.ValueMember = "idtiposem";
        }


    }
}



les escribo los primero errores que me e percatado al momento de hacer una búsqueda (como les decía no me marca error de código, lo que me hace es no me muestra lo que debe de mostrarme)

me e percatado que:

1.- al hacer búsquedas solo por Periodo de Ago-Dic/2012 a Ene-Jun/2014 me muestra todo a la normalidad, pero el de Ago-Dic/2011 me muestra todas las actas, todasssss..
2.-Lo mismo pasa cuando hago una búsqueda solo con Departamento, al hacer el filtrado de Gestion Empresarial me aparecen todas las actas, y el de Sistemas Computacionales y Mecatronica me aparecen bien.
3.- Bien, me estoy dando cuenta que pasa lo mismo con el combobox de Maestro, Materias y Tipo Semtestre, si voy hacer una búsqueda solo con un dato y es el primero que se encentra en la primera opción, me aparecen todas las actas..