public SamplePojo addSample(SamplePojo samplePojo) { SQLiteTransaction transact = Program.conn.BeginTransaction(); SQLiteCommand addObjects = new SQLiteCommand(INSERT, Program.conn, transact); addObjects.Parameters.Add(new SQLiteParameter("@id", null)); addObjects.Parameters.Add(new SQLiteParameter("@Name", samplePojo.name)); addObjects.Parameters.Add(new SQLiteParameter("@Date", samplePojo.Date)); try { addObjects.ExecuteNonQuery(); } catch (Exception ex) { logger.Error(ex); transact.Rollback(); if (ex.Message.Contains("FOREIGN")) { MessageBox.Show("Ошибка добавления", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(null); } throw new Exception(ex.Message); } samplePojo.id = SQLLiteUtil.getLastRowId(); foreach (MetaObject metaItem in samplePojo.metaList) { metaItem.SampleId = samplePojo.id; SQLiteCommand addMetaForObject = new SQLiteCommand(INSERT_META, Program.conn, transact); addMetaForObject.Parameters.Add(new SQLiteParameter("@id", null)); addMetaForObject.Parameters.Add(new SQLiteParameter("@value", metaItem.Value)); addMetaForObject.Parameters.Add(new SQLiteParameter("@Type", metaItem.type)); addMetaForObject.Parameters.Add(new SQLiteParameter("@SampeId", metaItem.SampleId)); try { addMetaForObject.ExecuteNonQuery(); } catch (Exception ex) { logger.Error(ex); transact.Rollback(); if (ex.Message.Contains("FOREIGN")) { MessageBox.Show("Данную запись нельзя добавить.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(null); } throw new Exception(ex.Message); } } transact.Commit(); return(samplePojo); }
public ObjectOfInvestigationPojo addObjectOfInvestigation(ObjectOfInvestigationPojo objectOfInvestigation) { SQLiteTransaction transact = Program.conn.BeginTransaction(); SQLiteCommand addObjects = new SQLiteCommand(INSERT, Program.conn, transact); addObjects.Parameters.Add(new SQLiteParameter("@id", null)); addObjects.Parameters.Add(new SQLiteParameter("@name", objectOfInvestigation.name)); try { addObjects.ExecuteNonQuery(); } catch (Exception ex) { logger.Error(ex); transact.Rollback(); if (ex.Message.Contains("FOREIGN")) { MessageBox.Show("Данную запись нельзя удалить.\nОна используется в связанных таблицах.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(null); } throw new Exception(ex.Message); } objectOfInvestigation.id = SQLLiteUtil.getLastRowId(); foreach (Characteristic characteristic in objectOfInvestigation.characteristics) { SQLiteCommand addCharactsForObject = new SQLiteCommand(INSERT_CHARACTS, Program.conn, transact); addCharactsForObject.Parameters.Add(new SQLiteParameter("@InputParameterId", characteristic.id)); addCharactsForObject.Parameters.Add(new SQLiteParameter("@SampeTypeId", objectOfInvestigation.id)); try { addCharactsForObject.ExecuteNonQuery(); } catch (Exception ex) { logger.Error(ex); transact.Rollback(); if (ex.Message.Contains("FOREIGN")) { MessageBox.Show("Данную запись нельзя удалить.\nОна используется в связанных таблицах.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(null); } throw new Exception(ex.Message); } } transact.Commit(); return(objectOfInvestigation); }
public Characteristic addCharacteristic(Characteristic characteristic) { SQLiteCommand insertSQL = new SQLiteCommand(INSERT, Program.conn); insertSQL.Parameters.Add(new SQLiteParameter("@id", null)); insertSQL.Parameters.Add(new SQLiteParameter("@name", characteristic.name)); insertSQL.Parameters.Add(new SQLiteParameter("@type", characteristic.type.getTypeOrdinal().ToString())); try { insertSQL.ExecuteNonQuery(); } catch (Exception ex) { logger.Error(ex); throw new Exception(ex.Message); } characteristic.id = SQLLiteUtil.getLastRowId(); return(characteristic); }