estoy creando en C# una app Administre unas actas que guardo en imagen con diferente información como de que Periodo es, de que Departamento, de que Materia, de que Maestro y de que Tipo de semestre es, entre otros datos. En una base de datos SQL Server 2014.
el código que muestro a continuación, en el form5 cargo de forma automática la clase cargarActas(); quien me hace la conexión y la consulta como lo muestro en la clase, y así también cargo en unos combobox con cada clase que se muestra abajo en seguida, estos combos se cargan de la misma base de datos pero de otras tablas en donde tengo información con respecto al Periodo, Departamento, Materia, Profesor, TipoSemestre.
Bien, en el formulario 5 tengo un dataGridView en donde muestro toda la información y 5 combobox que importan ahorita.
cuando lo ejecuto no me genera ningún error, pero no me muestra varios resultados como deberías de mostrarme.
DE QUE SE TRATA LA APLICACIÓN
Primer "Error"
al correr la aplicación, como decía se cargan automáticamente los combobox y el datagrit con 11 filas que tengo guardado, yo puedo hacer diferentes búsquedas con la información que esta cargada en mis diferentes combos,por ejemplo si selecciono en el combo Periodo el perido Ago-Dic/2012 (que es el segundo elemento de mi combo), que me muestre todas las actas que tengo con ese periodo, esto si lo hace pero cuando hago la selección del primer elemento que esta en mi combo (que es Ago-Dic/2011), lo que me muestra es 22 elemento, osea se encima otra consulta general.
esto se filta después de que le doy clic al boton Filtrar.
con el boton mostra, muestro una ves mas lo que esta en mi consulta, o sea todo.
con el boton eliminar, limpio todo.
Segundo ''Error''
así como en el primer error, me pasa al seleccionar el primer elemento del segundo combobox.
Mi Idea
pienso que el problema esta cuando en el ds.Clear(); en cada if que tengo.
o debo de utilizar otra método como ds.Reset();
Código
public Form5() { InitializeComponent(); } private void Form5_Load(object sender, EventArgs e) { cargarActas2(""); loadComboPeriodo(); loadComboDepartamento(); loadComboMate(); loadComboProfesor(); loadComboTipoSemestre(); } public void cargarActas2( String Filtro ) { string connetionString = "Data Source=IRONGIO-PC;Initial Catalog=itiz;Integrated Security=True"; string sql = "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 ; conexion.Open(); dataAdap.Fill(ds); conexion.Close(); dgvActas.DataSource = ds.Tables[0]; } private void Filtar_Click(object sender, EventArgs e) { String Filtro=""; if (comboBox4.SelectedIndex != 0) { Filtro += " and A.idperi= " + comboBox4.SelectedValue.ToString(); ds.Clear(); } if (comboBox1.SelectedIndex != 0) { Filtro = " and A.iddpto = " + comboBox1.SelectedValue.ToString(); ds.Clear(); } if (comboBox3.SelectedIndex != 0) { Filtro += " and A.idmate= " + comboBox3.SelectedValue.ToString(); ds.Clear(); } if (comboBox2.SelectedIndex != 0) { Filtro += " and A.idprofe= " + comboBox2.SelectedValue.ToString(); ds.Clear(); } if (comboBox5.SelectedIndex != 0) { Filtro += " and A.idtiposem= " + comboBox5.SelectedValue.ToString(); ds.Clear(); } this.cargarActas2(Filtro); } private void MostrarTodo_Click(object sender, EventArgs e) { ds.Clear(); cargarActas2(""); } private void Limpiar_Click(object sender, EventArgs e) { comboBox1.Text = ""; comboBox2.Text = ""; comboBox3.Text = ""; comboBox4.Text = ""; comboBox5.Text = ""; ds.Clear(); }