Foros del Web » Programación para mayores de 30 ;) » .NET »

Dónde colocar el .Clear();

Estas en el tema de Dónde colocar el .Clear(); en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/04/2015, 19:34
 
Fecha de Ingreso: diciembre-2013
Mensajes: 24
Antigüedad: 10 años, 4 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(); 
            
        }
  #2 (permalink)  
Antiguo 01/05/2015, 12:19
 
Fecha de Ingreso: junio-2011
Ubicación: Mexicali, BC
Mensajes: 17
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Dónde colocar el .Clear();

Mira, no entre a VS a verificar, pero a simple vista me parece que no estas reiniciando de manera correcta tanto tu datagridview como tus combos, me parece que el metodo correcto para limpiar la seleccion de cada Combo es ClearSelection(), y algo parecido debe pasar con tu datagridview, simplemente busca los metodos correctos de limpiar cada control.

Te paso dos links donde hablan sobre el borrar la seleccion de un combo..

[URL="https://social.msdn.microsoft.com/Forums/silverlight/en-US/c7df3cf7-8fb9-4459-84e1-0a4327ccd4fe/combobox-clear-selected-item"]https://social.msdn.microsoft.com/Forums/silverlight/en-US/c7df3cf7-8fb9-4459-84e1-0a4327ccd4fe/combobox-clear-selected-item[/URL]
[URL="https://support.microsoft.com/en-us/kb/327244"]https://support.microsoft.com/en-us/kb/327244[/URL]

Y en cuanto a limpiar un datagridview mira estos..

[URL="http://stackoverflow.com/questions/3744882/datagridview-clear"]http://stackoverflow.com/questions/3744882/datagridview-clear[/URL]
[URL="http://stackoverflow.com/questions/13137591/how-to-clear-a-data-grid-view"]http://stackoverflow.com/questions/13137591/how-to-clear-a-data-grid-view[/URL]

Espero te ayude la respuesta, saludos !

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:50.