Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2012, 10:05
Avatar de cronopiomx
cronopiomx
 
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 12 años
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();
        }