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..
Código:
Código:
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)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"; } } }
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..