Exemple #1
0
        private void columns_addConstraint_add_button_Click(object sender, EventArgs e)
        {
            var tableName  = dash_tables_listBox.SelectedItem?.ToString();
            var columnName = dash_columns_listBox.SelectedItem?.ToString();

            if (string.IsNullOrWhiteSpace(tableName) || string.IsNullOrWhiteSpace(columnName))
            {
                HandleError("Table and column must be selected.");
                return;
            }

            if (!columns_addConstraint_unique_checkBox.Checked && !columns_addConstraint_notNull_checkBox.Checked && !columns_addConstraint_references_checkBox.Checked && !columns_addConstraint_check_checkBox.Checked)
            {
                HandleError("You must check one constraint");
                return;
            }

            if (columns_addConstraint_references_checkBox.Checked && (string.IsNullOrWhiteSpace(columns_addConstraint_references_table_comboBox.SelectedItem?.ToString()) || string.IsNullOrWhiteSpace(columns_addConstraint_references_column_comboBox.SelectedItem?.ToString())))
            {
                HandleError("You must select a reference table and column.");
                return;
            }

            if (columns_addConstraint_check_checkBox.Checked && (string.IsNullOrWhiteSpace(columns_addConstraint_check_checkName_textBox.Text) || string.IsNullOrWhiteSpace(columns_addConstraint_check_columns_comboBox.SelectedItem?.ToString()) || string.IsNullOrWhiteSpace(columns_addConstraint_check_operators_comboBox.SelectedItem?.ToString()) || string.IsNullOrWhiteSpace(columns_addConstraint_check_value_textBox.Text)))
            {
                HandleError("You must have a check name, column, operator, and value.");
                return;
            }

            var dto = new AddColumnConstraintDto()
            {
                TableName  = $"{dash_statusStrip_schema_value.Text}.{tableName}",
                ColumnName = columnName.Split(' ')[0],
                Unique     = columns_addConstraint_unique_checkBox.Checked,
                NotNull    = columns_addConstraint_notNull_checkBox.Checked,
                References = columns_addConstraint_references_checkBox.Checked,
                Check      = columns_addConstraint_check_checkBox.Checked
            };

            if (dto.References)
            {
                dto.ReferencesTableName  = columns_addConstraint_references_table_comboBox.SelectedItem?.ToString();
                dto.ReferencesColumnName = columns_addConstraint_references_column_comboBox.SelectedItem?.ToString();
            }

            if (dto.Check)
            {
                dto.CheckName     = columns_addConstraint_check_checkName_textBox.Text;
                dto.CheckColumn   = columns_addConstraint_check_columns_comboBox.SelectedItem?.ToString();
                dto.CheckOperator = columns_addConstraint_check_operators_comboBox.SelectedItem?.ToString();
                dto.CheckValue    = columns_addConstraint_check_value_textBox.Text;
            }

            try
            {
                _sql.AddColumnConstraint(dto, connDto);

                WriteToLog("Successfully added constraint(s)");

                dash_tables_listBox_SelectedIndexChanged(sender, e);

                columns_addConstraint_check_checkBox.Checked      = false;
                columns_addConstraint_notNull_checkBox.Checked    = false;
                columns_addConstraint_references_checkBox.Checked = false;
                columns_addConstraint_unique_checkBox.Checked     = false;

                columns_addConstraint_check_columns_comboBox.SelectedIndex     = -1;
                columns_addConstraint_check_operators_comboBox.SelectedIndex   = -1;
                columns_addConstraint_references_column_comboBox.SelectedIndex = -1;
                columns_addConstraint_references_table_comboBox.SelectedIndex  = -1;

                columns_addConstraint_check_checkName_textBox.Text = string.Empty;
                columns_addConstraint_check_value_textBox.Text     = string.Empty;
            }
            catch (Exception ex)
            {
                HandleError("Error adding column constraint:", ex);
                return;
            }
        }