//INSERT public void InsertTransaction(int idsub, List <int> u, int count, int course) { string queryClass = @"INSERT INTO Class(idMatter,idCourse) VALUES( :subject , :course)"; string queryClassSche = @"INSERT INTO ClassSchedules(idClass,schedulesid) VALUES( :idclass, :idsche)"; string queryAve = @"INSERT INTO AverageGradeTotal(firstTrimester) VALUES(0) "; string queryGrades = @"INSERT INTO Grade(studentid,idClass,idAverage) VALUES( :student, :class, :average) "; string queryFirst = @"INSERT INTO FirstTrimester(gradeId) VALUES( :id)"; string querySecond = @"INSERT INTO SecondTrimester(gradeId) VALUES( :id)"; string queryThird = @"INSERT INTO ThirdTrimester(gradeId) VALUES( :id)"; try { int reset; int i = 1; int idgradetotal = DBImplementation.GetIdentityFromTable("Grade"); System.Diagnostics.Debug.WriteLine(string.Format("{0} | Info: 1.", DateTime.Now)); DBImplementation.ResetIdentFromTable("Grade"); int idgradeincrement = DBImplementation.GetIncementFromTable("Grade"); int idgrade = idgradetotal - idgradeincrement; int idaveragetotal = DBImplementation.GetIdentityFromTable("AverageGradeTotal"); int idaverageincrement = DBImplementation.GetIncementFromTable("AverageGradeTotal"); DBImplementation.ResetIdentFromTable("AverageGradeTotal"); int idaverage = idaveragetotal - idaverageincrement; int students = 0; DataTable dt = new DataTable(); dt = SelectStudents(course); foreach (DataRow d in dt.Rows) { students++; } System.Diagnostics.Debug.WriteLine(string.Format("{0} | Info: Start Add Class.", DateTime.Now)); List <OracleCommand> cmds = DBImplementation.CreateNBasicCommands(count + (students * 7)); List <OracleParameter[]> parameters = new List <OracleParameter[]>(); int id = DBImplementation.GetIdentityFromTable("Class"); DBImplementation.ResetIdentFromTable("Class"); cmds[0].CommandText = queryClass; parameters.Add(new OracleParameter[2]); parameters[0][0] = new OracleParameter(":subject", idsub); parameters[0][1] = new OracleParameter(":course", course); cmds[0].Parameters.AddRange(parameters[0]); System.Diagnostics.Debug.WriteLine(string.Format("{0} | Info: addclassforeach", DateTime.Now)); foreach (var lis in u) { cmds[i].CommandText = queryClassSche; parameters.Add(new OracleParameter[2]); parameters[i][0] = new OracleParameter(":idclass", id); parameters[i][1] = new OracleParameter(":idsche", lis); cmds[i].Parameters.AddRange(parameters[i]); i++; } System.Diagnostics.Debug.WriteLine(string.Format("{0} | Info: addclassforeach", DateTime.Now)); foreach (DataRow d in dt.Rows) { idaverage = idaverage + idaverageincrement; cmds[i].CommandText = queryAve; parameters.Add(new OracleParameter[0]); i++; System.Diagnostics.Debug.WriteLine(string.Format("{0} | Info: addclassforeach", DateTime.Now)); for (int k = 0; k < 3; k++) { switch (k) { case 0: System.Diagnostics.Debug.WriteLine(string.Format("{0} | Info: addclassforeach", DateTime.Now)); idgrade = idgrade + idgradeincrement; cmds[i].CommandText = queryGrades; parameters.Add(new OracleParameter[3]); parameters[i][0] = new OracleParameter(":student", d[0].ToString()); parameters[i][1] = new OracleParameter(":class", id); parameters[i][2] = new OracleParameter(":average", idaverage); cmds[i].Parameters.AddRange(parameters[i]); i++; cmds[i].CommandText = queryFirst; parameters.Add(new OracleParameter[1]); parameters[i][0] = new OracleParameter(":id", idgrade); cmds[i].Parameters.AddRange(parameters[i]); i++; break; case 1: System.Diagnostics.Debug.WriteLine(string.Format("{0} | Info: addclassforeach", DateTime.Now)); idgrade = idgrade + idgradeincrement; cmds[i].CommandText = queryGrades; parameters.Add(new OracleParameter[3]); parameters[i][0] = new OracleParameter(":student", d[0].ToString()); parameters[i][1] = new OracleParameter(":class", id); parameters[i][2] = new OracleParameter(":average", idaverage); cmds[i].Parameters.AddRange(parameters[i]); i++; cmds[i].CommandText = querySecond; parameters.Add(new OracleParameter[1]); parameters[i][0] = new OracleParameter(":id", idgrade); cmds[i].Parameters.AddRange(parameters[i]); i++; break; case 2: System.Diagnostics.Debug.WriteLine(string.Format("{0} | Info: addclassforeach", DateTime.Now)); idgrade = idgrade + idgradeincrement; cmds[i].CommandText = queryGrades; parameters.Add(new OracleParameter[3]); parameters[i][0] = new OracleParameter(":student", d[0].ToString()); parameters[i][1] = new OracleParameter(":class", id); parameters[i][2] = new OracleParameter(":average", idaverage); cmds[i].Parameters.AddRange(parameters[i]); i++; cmds[i].CommandText = queryThird; parameters.Add(new OracleParameter[1]); parameters[i][0] = new OracleParameter(":id", idgrade); cmds[i].Parameters.AddRange(parameters[i]); i++; break; } } } DBImplementation.ExecuteNBasicCommand(cmds); System.Diagnostics.Debug.WriteLine(string.Format("{0} | Info: Add Class by" + Session.SessionCurrent.ToString() + " Object Send: {1}", DateTime.Now)); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(string.Format("{0} | Error: Could not Add Class({1}).", DateTime.Now, ex.Message)); } }