Датагридвью в C3 - PullRequest
       4

Датагридвью в C3

0 голосов
/ 22 мая 2018

Я выставляю счет на продажу и хочу, чтобы система проверила, является ли введенное количество двойным значением или нет, а если двойное значение, введенное количество должно быть меньше, чем количество в базе данных.
Проверка проверкиесли пользователь вводит double или no работает нормально, но другая часть кода не работает нормально. код работает после того, как пользователь покинул ячейку и ввел ее снова, и если он отредактировал ее, система продолжает сохранять старое значение (неверное значение) но для первой части он работает нормально, если он вводит буквы, система выдает ему ошибку, а когда он исправляет ее, система принимает новое значение и позволяет ему нормально уйти с продажи, проблема во второй части, вот моякод:

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    {
        if (e.ColumnIndex == 3 || e.ColumnIndex == 4 || e.ColumnIndex == 5 || e.ColumnIndex == 6 || e.ColumnIndex == 7) // 1 should be your column index
        {
            if (Convert.ToString(e.FormattedValue) != "")
            {
                double i;

                if (!double.TryParse(Convert.ToString(e.FormattedValue), out i))
                {
                    e.Cancel = true;
                    MessageBox.Show("Insert correct numbers");
                }
                else
                {

                    if (e.ColumnIndex == 5)
                    {
                        qty3 = Convert.ToDouble(dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[5].Value);
                        string code = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();
                        sqlClass c = new sqlClass();
                        con = c.getcon();
                        con.Open();
                        c.command("select quantity from items where code='" + code + "'");
                        cmd = c.getcmd();
                        double qty2 = Convert.ToDouble(cmd.ExecuteScalar().ToString());
                        if (qty3 > qty2)
                        {
                            e.Cancel = true;
                            MessageBox.Show("You don't have enough quantity \n Quantity available is:" + qty2);

                        }
                        else
                        {
                            dataGridView1[e.ColumnIndex, e.RowIndex].ErrorText = null;
                        }

                        con.Close();
                    }
                }

                }
            }         
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...