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

Problema con DataSet

Estas en el tema de Problema con DataSet en el foro de .NET en Foros del Web. hola amigos, tengo 3 tablas cursos, alumnos y asignaturas, y quiero crear 1 tercera tabla con su grid vacio todo, llenarlo con los datos de ...
  #1 (permalink)  
Antiguo 18/06/2012, 10:05
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 11 años, 11 meses
Puntos: 28
Pregunta Problema con DataSet

hola amigos, tengo 3 tablas cursos, alumnos y asignaturas, y quiero crear 1 tercera tabla con su grid vacio todo, llenarlo con los datos de las 3 tablas, ellas en comun tienen cursos el cod_cur como PK, y las otras 2 con cod_cur como FK, entonces al presionar 1 boton me deben salir esos datos como lo he programado, me salen, pero al volver a pinchar el boton pasa que me hace la misma operacion como de insertar y me da error porque dublica la PK, que puedo hacer este es mi codigo???

s2
crono
Código:
int i, j, k;
            i = j = k = 0;
            string Codigo_curso, Codigo_asig;
            DataView VistaCursos, VistaAsignatura, VistaAlumnos;
            dnotas = new DataSet();
            notas = new BindingSource();

            VistaCursos = dcur.Tables["Cursos"].DefaultView;
            VistaAsignatura = das.Tables["Asignaturas"].DefaultView;
            VistaAlumnos = dals.Tables["Alumnos"].DefaultView;
            VistaCursos.Sort = "COD_CUR";

            for (i = 0; i < VistaCursos.Count; i++)
            {
                Codigo_curso = VistaCursos[i].Row["COD_CUR"].ToString();
                VistaAsignatura.RowFilter = "COD_CUR LIKE '" + Codigo_curso + "'";
                VistaAsignatura.Sort = "COD_ASI";

                for (j = 0; j < VistaAsignatura.Count; j++)
                {
                    Codigo_asig = VistaAsignatura[j].Row["COD_ASI"].ToString();
                    VistaAlumnos.RowFilter = "COD_CUR LIKE '" + Codigo_curso + "'";
                    VistaAlumnos.Sort = "APELLIDOS,NOMBRE";

                    for (k = 0; k < VistaAlumnos.Count; k++)
                    {
                        
                                           
                        da.SelectCommand = new SqlCommand("SELECT COD_CUR, COD_ASI, COD_ALU, NOTA1, NOTA2, NOTA3, MEDIA  FROM NOTAS", Conexion.abrirConexion());            
            da.Fill(dnotas, "NOTAS");
                      
                                             
                        da.Fill(dnotas, "NOTAS");
                        notas.DataSource = dnotas.Tables["NOTAS"].DefaultView;
                        dnotas.Tables["NOTAS"].Rows.Add(Codigo_curso, Codigo_asig, VistaAlumnos[k].Row["COD_ALU"], 0, 0, 0, 0);
                        string variablerandom = "INSERT INTO NOTAS VALUES ('";
                        variablerandom = variablerandom + Codigo_curso + "', '" + Codigo_asig + "', '" + VistaAlumnos[k].Row["COD_ALU"] + "', 0,0,0,0)";
                        da.InsertCommand = new SqlCommand(variablerandom, Conexion.abrirConexion());
                        da.InsertCommand.ExecuteNonQuery();

                        
                        GridNotas.DataSource = notas;

                        Conexion.cerrarConexion();
                    }
                }
            }
            VistaAlumnos.RowFilter = "";
            VistaAsignatura.RowFilter = "";
            Cargar_Notas();
        }
  #2 (permalink)  
Antiguo 18/06/2012, 21:06
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: Problema con DataSet

Hola.
No seria mas practico que crearas una consulta a la base de datos haciendo inner a las tres tablas, así seria mas rapida la consulta, no tendrias que ir recorriendo como lo haces.
O no lo puedes hacer así?
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard

Etiquetas: dataset, sql, tabla
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 14:10.