Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - irvincnt93

#1
hola familia tengo un problema al momento de mostrar una tabla de mi base de datos en un datagridview en C#. les especifico un poco mejor.

tengo una tabla con nombre Actas.
-----------------------------------------------------------------------------
  id_acta | id_dpto | id_mate | ...... | grupo | clave | folio | ruta |
-----------------------------------------------------------------------------

todas las columnas deben de tener datos (not null) pero la de clave y folio, algunos campos puede que tengan o no tengas (null).

ahora tengo en mi aplicación en C# una clase que me carga la tabla Actas, si en mi tabla tengo filas que no tiene celdas nulas si me muestra todo como debe de ser, pero al momento de agregar una fila con la celda en clave y folio nulo (null) al momento de darle clic en mostrar actas, me genera un error que dice:

Citar
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in System.Data.dll

Additional information: clave


les muestro la clase que carga todas mis Actas



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();
        }


buscando como arreglar el error encontré  que los valores nulos tengo que sustituilos por otra palabra para poder mostrarlos, lo que intente fue poner esta sentencia selec:


comando.CommandText = "select idacta, PE.nombrePeriodo, DE.nombreDpto, MA.nombreMateria, PR.nombreProfesor, TS.nombreTipoSemestre, grupo, ISNULL(clave,'vacio'), ISNULL(folio,'vacio'), 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;


así como lo tengo en esta sentencia si me voy al gestor de BD y ejecuto esta sentencia, me salen todos los datos como los quiero, pero al momento de ponerlo en el código me genera el comentario del error que les puse arriba.

entonces pienso que el error esta aqui pero no se como arreglarlo


dgvActas.Rows[renglon].Cells["clave"].Value = dr.GetString(dr.GetOrdinal("clave"));
dgvActas.Rows[renglon].Cells["folio"].Value = dr.GetString(dr.GetOrdinal("folio"));
#2
tengo en mi formulario 5 combobox que utilizo para hacer varias combinaciones de búsquedas como lo vemos en esta imagen.



en el código que muestro abajo, como ven, saco el valor de la propiedad del comobox del cual yo lo seleccione para compararlo con un id que tengo en mi base de datos, este valor de la propiedad lo saco con Combobox#.SelectedValue.toString();. Al hacer la primer búsqueda todo bien, pero si quiero hacer otra búsqueda con otros campos de otros combox, no puedo porque el valor del elemento no se borra.

Leí por ahí que SelectedValue deja el valor del item anterior si es que no lo vuelvo a seleccionar. cómo puedo borrar o resetar los valores después de que los selecciono?

Código (csharp) [Seleccionar]

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



           if (opcion1 != false)
           {
               Filtro += " and  A.idperi= " + comboBox1.SelectedValue.ToString();
                           
           }
           if (opcion2 != false)
           {
               Filtro = " and A.iddpto = " + comboBox2.SelectedValue.ToString();

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

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

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

           this.cargarActas(Filtro);

           
       }
#3



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..



#4
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 (csharp) [Seleccionar]


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();
           
       }

#5
hola colegas tengo un problemita..

quiero mostrar el valor de un combobox en un textbox pero este combobox se carga los items de una base de datos. Al utilizar este código no me marca error pero no me muestra el valor que selecciono en el combo, lo que me muestra es ActasFinal.Departamento Actasfinal es el nombre de mi proyecto y departamento es una tabla de mi base de datos, no se porque me muestra eso.

string dpto = comboBox2.SelectedItem.ToString();
textBox3.Text = dpto;
#6
hola familia buen día, ayuda porfis..

tengo una app en C# que conecta a SQL Server, el problema que en este momento me surgió y que no se como hacerle es:

en una tabla que se llama Actas tengo estas columnas (Periodos, Departamentos, Materia, Maestros) y lo que quiero es una búsqueda, se le llamé búsqueda inteligente :D. Lo que intento hacer que es con estos campos haya una combinación en las búsquedas.

puedo hacer estas búsquedas, que me muestre:
- los del Periodo tal
- del Periodo tal estos Departamentos
- del Periodo tal, el Departamento tal, estas Materias
- del Periodos tal, el Departamento tal, de la Materia tal, estos Maestros.
- los Departamentos tal
- las Materias tales
- los Maestros tales.
- etc.. y todas las combinaciones posibles.....

la idea que tengo es esta: se que la consulta o query se almacena en la propiedad comando.CommandText entonces si hago la consulta de primero periodos y después la de periodos departamentos, concateno el cuery de periodos con la búsqueda de perdidos departamentos. pero cómo? ayuda porfa....

tengo esta sentencia donde me muestra todo, como ven tengo un poco mas de código que me permite mostrar otras cosas de otras tablas pero creo que eso no importa.

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";


espero que me entiendan
#7
hola colegas necesito de su ayuda, tengo esta sentencia donde muestro una tabla actas unida a varias actas más. La ayuda que quiero es en el where, cómo ponerla en código c#, los valores en que selecciono en combobox son los que comparo en el where con cada id de mis tablas para hacer la búsqueda respectiva.

en mi Form tengo 6 combobox y los 6 están en mi comparación dentro del where para la comparación, pero en este caso esta mal para lo que quiero.

lo que pretendo es que haga varias tipos de búsquedas (o búsqueda inteligente o como se llame) ya sea que solo con el combobox de Departamentos (iddpto) y el de Materia (idmate) me muestre todos los valores que está en mi consulta. Pero después otra búsqueda con la comparación de con Periodo (idperi) con Departamento y con el grupo (grupo) y todas las combinaciones que se pueda.

un maestro me comentó que para hacer esto lo podía hacer de esta forma, que el comando.commandText lo meta en varios if anidados, la verdad no tengo idea de como.

ayuda porfis...


Código (csharp) [Seleccionar]

public void cargarActas()
       {
           string cadenaconexion = @"Data Source=IRVIN-PC;Initial Catalog=itiz;Integrated Security=True";
           SqlConnection conexion = new SqlConnection();
           SqlCommand comando = new SqlCommand();
           SqlDataReader dr;
           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 idperi= '" + comboBox1.SelectedValue + "' and iddpto= '" + comboBox2.SelectedValue + "' and idmate= '" + comboBox3.SelectedValue + "' and idprofe= '" + comboBox3.SelectedValue + "'  and idtiposem= '" + comboBox3.SelectedValue + "' and idgrupo= '" + comboBox3.SelectedValue + "'";
                                   
                                   

           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();
       }

#8
tengo este código que encontré en una página, pero no se que represente el List <> despues del public static.. ayuda porfaaa.

Código (csharp) [Seleccionar]
public static List<Artist> GellAllArtist()
{
string sql = @"SELECT ArtistId, Name FROM Artist ORDER BY Name ASC";
List<Artist> list = new List<Artist>();
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
list.Add(LoadArtist(reader));
}
}
return list;
}


Mod: Mensaje modificado, al publicar código usa etiquetas GeSHi
#9
hola comunidad necesito de su ayuda...

tengo este pequeño código en donde pretendo mostrar en un Datagridview una tabla que con una sentencia en sql la muestro, después quiero que en la columna dirección se muestre la palabra de "mostrar" y que al hacer clic en ella se muestre la imagen que tengo guardada en la base de datos (tengo guardado el path).

hasta este momento el código me muestra la tabla y así también tengo uno que otro código que está mal porque saque la idea de varias aplicaciones y ahora me encuentro con ese problema .. ayuda porfis

Código (csharp) [Seleccionar]

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Diagnostics;

namespace abrirPathEnListas
{
   public partial class Form2 : Form
   {
       SqlConnection conexion = new SqlConnection();
       SqlCommand comandos = new SqlCommand();
       
       public Form2()
       {
           InitializeComponent();
       }
       class customcolumn : System.Windows.Forms.DataGridViewLinkColumn
       {
           public Dictionary<int, string> urls = new Dictionary<int, string>();
       }
       private void Form2_Load(object sender, EventArgs e)
       {
           conexion.ConnectionString = @"Data Source=IRVIN-PC;Initial Catalog=imagenes;Integrated Security=True";
           SqlDataReader dr;
           comandos.Connection = conexion;
           comandos.CommandText = "SELECT periodo,departamento,materia,profesor,grupo,direccion FROM actasPath";
           comandos.CommandType = CommandType.Text;
           conexion.Open();
           dataGridView1.Rows.Clear();

           dr = comandos.ExecuteReader();

           while (dr.Read())
           {
               int renglon = dataGridView1.Rows.Add();

               dataGridView1.Rows[renglon].Cells["periodos"].Value = dr.GetString(dr.GetOrdinal("periodo")).ToString();
               dataGridView1.Rows[renglon].Cells["dpto"].Value = dr.GetString(dr.GetOrdinal("departamento")).ToString();
               dataGridView1.Rows[renglon].Cells["materias"].Value = dr.GetString(dr.GetOrdinal("materia")).ToString();
               dataGridView1.Rows[renglon].Cells["profesores"].Value = dr.GetString(dr.GetOrdinal("profesor")).ToString();
               dataGridView1.Rows[renglon].Cells["grupos"].Value = dr.GetString(dr.GetOrdinal("grupo")).ToString();
               
               //tengo aquí que guardar el valor que extraigo de la base de datos y almacenarla en una variable para mostrarla en la parte de abajo donde tengo la direccion de la imagen??

               dataGridView1.Rows[renglon].Cells["path"].Value = dr.GetString(dr.GetOrdinal("direccion")).ToString();
               int row_index = 0;
               int column_index = 0;
               customcolumn c = new customcolumn();
               dataGridView1.Columns.Add(c);
               dataGridView1.Rows.Add();

               dataGridView1.Rows[row_index].Cells[column_index].Value = "buscar";

               ((customcolumn)(dataGridView1.Columns[column_index])).urls.Add(row_index, "C:\\Users\\irvin\\Pictures\\1.png");
           }
         
           conexion.Close();

           
       }
       private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
       {
           
       }

       private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
       {
           foreach (KeyValuePair<int, string> url in ((customcolumn)(dataGridView2.Columns[e.ColumnIndex])).urls)
           {
               if (url.Key == e.RowIndex)
               {
                   Process.Start(url.Value);
                   break;
               }
           }

         
       }
   }
}
#10
hola amigo.. si creo que si me entendiste.. tengo una duda bro... primero te paso mi código..
Código (csharp,29,31,34) [Seleccionar]


private void Form2_Load(object sender, EventArgs e)
       {
           conexion.ConnectionString = @"Data Source=IRVIN-PC;Initial Catalog=imagenes;Integrated Security=True";
           SqlDataReader dr;
           comandos.Connection = conexion;
           comandos.CommandText = "SELECT periodo,departamento,materia,profesor,grupo,direccion FROM actasPath";
           comandos.CommandType = CommandType.Text;
           conexion.Open();
           dataGridView1.Rows.Clear();

           dr = comandos.ExecuteReader();

           while (dr.Read())
           {
               int renglon = dataGridView1.Rows.Add();

               dataGridView1.Rows[renglon].Cells["periodos"].Value = dr.GetString(dr.GetOrdinal("periodo")).ToString();
               dataGridView1.Rows[renglon].Cells["dpto"].Value = dr.GetString(dr.GetOrdinal("departamento")).ToString();
               dataGridView1.Rows[renglon].Cells["materias"].Value = dr.GetString(dr.GetOrdinal("materia")).ToString();
               dataGridView1.Rows[renglon].Cells["profesores"].Value = dr.GetString(dr.GetOrdinal("profesor")).ToString();
               dataGridView1.Rows[renglon].Cells["grupos"].Value = dr.GetString(dr.GetOrdinal("grupo")).ToString();
               dataGridView1.Rows[renglon].Cells["path"].Value = dr.GetString(dr.GetOrdinal("direccion")).ToString();
           }
           conexion.Close();
       }
       private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
       {
           string valor = ((DataGridView)sender).Rows(e.RowIndex).Cell(0).Value.ToString;

           if(!String.IsNullOrEmpty(valor) && IO.File.Exists(valor)){
               try
               {
                   Process.Start(valor);
               }
               catch (Exception ex)
               {
                   throw;
               }  
           }
           else
           {

           }
       }






mi este es lo que tengo hermano, en tu código veo que en la parte de arriba del evento CellContentClick tienes un código que supongo yo es para llenar el datagridview (aun que lo estoy dudando, creo que es parde del codigo para que lo de abajo me funcione correctamente), el mio lo puse de esa manera. las tres palabras que subraye dentro del evento CellContentClick me marcan error bro, porfa ayudame