Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/04/2015, 19:34
irvin93
 
Fecha de Ingreso: diciembre-2013
Mensajes: 24
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta Dónde colocar el .Clear();

Hola colegas, tengo un grave problema con esta aplicaciones, bueno en si son varios problemas jeje, les comentare que es lo que hago con este pedazo de código y después cuáles son los problemas que me surgen vale.

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();
        }
        DataSet ds = new DataSet();
        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 ;

            SqlConnection conexion = new SqlConnection(connetionString);
            SqlDataAdapter dataAdap = new SqlDataAdapter(sql, conexion);
            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(); 
            
        }