
18/06/2012, 10:05
|
 | | | Fecha de Ingreso: mayo-2012 Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 12 años, 10 meses Puntos: 28 | |
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();
}
|