예제 #1
0
        private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            DataTable table        = (DataTable)dataGridView.DataSource;
            string    newCellValue = e.FormattedValue.ToString();

            // Оповещение про несоответствие содержимого поля шаблону
            FieldsValidator validator = new FieldsValidator();

            if (!validator.FieldMatchPattern(table.Columns[e.ColumnIndex], newCellValue))
            {
                dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "Поле не відповідає шаблону";
            }

            // Оповещение про незаполненное поле
            else if (!validator.FieldMathcNullRequirement(table.Columns[e.ColumnIndex], newCellValue))
            {
                dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "Дане поля не можна залишати порожнім";
            }

            // Очищаем сообщение об ошибке
            else
            {
                dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = null;
            }
        }
예제 #2
0
        private void ProceedUpdate()
        {
            foreach (KeyValuePair <int, int> cellCoords in CellsUpdated.Keys)
            {
                DataTable table = (DataTable)dataGridView.DataSource;
                // Проверка на корректность содержимого полей
                FieldsValidator validator = new FieldsValidator();
                if (!validator.CheckField(table.Columns[cellCoords.Value], CellsUpdated[cellCoords]))
                {
                    continue;
                }

                string columnName = table.Columns[cellCoords.Value].ColumnName;
                string newValue   = CellsUpdated[cellCoords];
                // Изменить поля с датой в соответствие формату в БД
                if (table.Columns[columnName].DataType.Name.Equals("DateTime"))
                {
                    newValue = validator.ConvertToPostgreSQLDate(newValue);
                }
                if (table.Columns.Contains("id"))
                {
                    UpdateOneValueWithAnyColumn(table.TableName, columnName, newValue,
                                                "id", dataGridView.Rows[cellCoords.Key].Cells[table.Columns.IndexOf("id")].Value.ToString());
                }
                if (table.TableName.Equals("department") || table.TableName.Equals("hall"))
                {
                    UpdateOneValueWithAnyColumn(table.TableName, columnName, newValue,
                                                "name", dataGridView.Rows[cellCoords.Key].Cells[table.Columns.IndexOf("name")].Value.ToString());
                }
            }
        }
        private IList <string> GetValues()
        {
            FieldsValidator validator = new FieldsValidator();
            IList <string>  values    = new List <string>();

            string     newValue;
            DataColumn column;

            TextBox[] textBoxes = personalDataPage.Controls.OfType <TextBox>().ToArray();
            Label[]   labels    = personalDataPage.Controls.OfType <Label>().ToArray();
            for (int i = 0; i < textBoxes.Length; i++)
            {
                newValue = textBoxes[i].Text.Trim();
                column   = Table.Columns[Table.Columns.IndexOf(labels[i].Text)];
                if (!validator.CheckField(column, newValue))
                {
                    MessageBox.Show(string.Format("Поле '{0}' заповнене невірно.", Table.Columns[labels[i].Text].ColumnName),
                                    "Уважаемый пользователь!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return(null);
                }

                if (string.IsNullOrEmpty(newValue))
                {
                    values.Add("DEFAULT");
                }
                else
                {
                    values.Add(" '" + newValue + "'");
                }
            }

            return(values);
        }
예제 #4
0
        private void dataGridView_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
        {
            DataTable       table     = (DataTable)dataGridView.DataSource;
            FieldsValidator validator = new FieldsValidator();

            if (CurrentOperation == Operation.Update && !validator.FieldMathcNullRequirement(table.Columns[e.ColumnIndex], e.Value.ToString()))
            {
                e.Value          = "Ошибка!";
                e.ParsingApplied = true;
            }
        }
예제 #5
0
        public void Book()
        {
            DataTable     table = (DataTable)dataGridView.DataSource;
            StringBuilder values;
            string        currentDate;

            foreach (DataGridViewRow row in dataGridView.SelectedRows)
            {
                values      = new StringBuilder();
                currentDate = DateTime.Now.ToString();
                currentDate = new FieldsValidator().ConvertToPostgreSQLDate(currentDate.Substring(0, currentDate.IndexOf(' ')));
                values.Append(row.Cells[table.Columns.IndexOf("id")].Value).Append(", ")
                .Append(ClientID).Append(", '")
                .Append(currentDate).Append("', ").Append("DEFAULT");
                InsertOneWithId("book_reader", values.ToString());
            }
            MessageBox.Show("Бронювання було успішно виконано.", "Шановний користувач!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            CurrentOperation = Operation.None;
        }
예제 #6
0
        private string GetValues(TextBox[] textBoxes)
        {
            Label[] labels = Controls.OfType <Label>().ToArray();

            FieldsValidator validator = new FieldsValidator();
            StringBuilder   values    = new StringBuilder();

            string     newValue;
            DataColumn column;

            for (int i = 0; i < textBoxes.Length; i++)
            {
                newValue = textBoxes[i].Text.Trim();
                column   = Table.Columns[Table.Columns.IndexOf(labels[i].Text)];
                if (!validator.CheckField(column, newValue))
                {
                    MessageBox.Show(string.Format("Поле '{0}' заповнене невірно.", Table.Columns[labels[i].Text].ColumnName),
                                    "Уважаемый пользователь!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return(null);
                }

                // Изменить поля с датой в соответствие формату в БД
                if (column.DataType.Name.Equals("DateTime"))
                {
                    newValue = validator.ConvertToPostgreSQLDate(newValue);
                }

                if (string.IsNullOrEmpty(newValue))
                {
                    values.Append(" DEFAULT");
                }
                else
                {
                    values.Append(" '").Append(newValue).Append("'");
                }
                if (i + 1 < textBoxes.Length)
                {
                    values.Append(",");
                }
            }

            return(values.ToString());
        }