void QRPNTypes_QRPNTypesRowDeleted(object sender, DataSetQuery.QRPNTypesRowChangeEvent e) { if (e.Action == DataRowAction.Delete) { if (!m_bAcceptChanges) { e.Row.RejectChanges(); } else { try { using (var cmdBuilder = new SQLiteCommandBuilder(this.qRPNTypesTableAdapter.Adapter)) this.qRPNTypesTableAdapter.Adapter.Update(this.dataSetQuery.QRPNTypes); } catch (SQLiteException ex) { MyLocalizer.XtraMessageBoxShow(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (DBConcurrencyException ex) { MyLocalizer.XtraMessageBoxShow(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
void QRPNTypes_QRPNTypesRowDeleting(object sender, DataSetQuery.QRPNTypesRowChangeEvent e) { try { if (e.Action == DataRowAction.Delete) { if (Convert.ToInt64(e.Row["ReadOnly"]) != 0) { MyLocalizer.XtraMessageBoxShow("Недостаточно прав для удаления записи.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); m_bAcceptChanges = false; return; } if (MyLocalizer.XtraMessageBoxShow("Удалить запись?", "Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes) { m_bAcceptChanges = false; return; } else { long id = Convert.ToInt64(e.Row["RPNTypeID"]); SQLiteConnection connection = new SQLiteConnection(global::DiarMain.Properties.Settings.Default.diarConnectionString); connection.Open(); SQLiteCommand com = new SQLiteCommand(connection); com.CommandText = "Select COUNT(*) AS Cnt from Equipments WHERE RPNTypeID = ?"; com.CommandType = CommandType.Text; SQLiteParameter param1 = new SQLiteParameter("@Param1", DbType.Int64); param1.Value = id; com.Parameters.Add(param1); SQLiteDataReader dr = com.ExecuteReader(); while (dr.Read()) { if (Convert.ToInt64(dr["Cnt"]) > 0) { MyLocalizer.XtraMessageBoxShow("Существует оборудование, имеющее РПН данного типа.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); m_bAcceptChanges = false; dr.Close(); connection.Close(); return; } } dr.Close(); m_bAcceptChanges = true; connection.Close(); } } } catch (SQLiteException ex) { MyLocalizer.XtraMessageBoxShow(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (DBConcurrencyException ex) { MyLocalizer.XtraMessageBoxShow(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/*void QRPNTypes_QRPNTypesRowChanging(object sender, DataSetQuery.QRPNTypesRowChangeEvent e) * { * //throw new NotImplementedException(); * }*/ void QRPNTypes_QRPNTypesRowChanged(object sender, DataSetQuery.QRPNTypesRowChangeEvent e) { if (e.Action == DataRowAction.Add || e.Action == DataRowAction.Change) { try { if (e.Action == DataRowAction.Change && m_bUpdateID) { this.dataSetQuery.QRPNTypes.AcceptChanges(); m_bUpdateID = false; return; } else { using (var cmdBuilder = new SQLiteCommandBuilder(this.qRPNTypesTableAdapter.Adapter)) this.qRPNTypesTableAdapter.Adapter.Update(this.dataSetQuery.QRPNTypes); } if (e.Action == DataRowAction.Add) { SQLiteConnection connection = new SQLiteConnection(global::DiarMain.Properties.Settings.Default.diarConnectionString); connection.Open(); SQLiteCommand com = new SQLiteCommand(connection); com.CommandText = "select seq from sqlite_sequence where name = 'RPNTypes'"; com.CommandType = CommandType.Text; SQLiteDataReader dr = com.ExecuteReader(); long id = 0; while (dr.Read()) { id = Convert.ToInt64(dr["seq"]); } dr.Close(); connection.Close(); m_bUpdateID = true; ((DataRowView)(qRPNTypesBindingSource.Current)).Row["RPNTypeID"] = id; } } catch (SQLiteException ex) { MyLocalizer.XtraMessageBoxShow(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (DBConcurrencyException ex) { MyLocalizer.XtraMessageBoxShow(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }