Не удаётся вставить повторяющийся ключ в базу данных

Создаю приложение для зоомагазина. При попытке добавления новой записи возникает исключение, мол, невозможно добавить повторяющийся ID. Текст запроса - "Insert into dbo.[Другие товары] ([id_Товара], [Название], [Цена]) VALUES ('{0}', '{1}', '{2}')", ID, Name, Price Запрос рабочий, проверен напрямую в SQL Генерация ID происходит так textBox1.Text = Guid.NewGuid().ToString();. То есть, ни о каком повторяющимся идентификаторе и речи быть не может. Следует также сказать, что запись в таблицу добавляется, но исключение всё равно возникает. Код обработчика события:

 private void btn_addData_Click(object sender, EventArgs e)
    {
        textBox1.Text = Guid.NewGuid().ToString();
        if (dal.SaveNewProduct(textBox1.Text, txbx_productName.Text.Trim(), decimal.Parse(txbx_productPriсe.Text)))
            this.DialogResult = DialogResult.OK;
        else
            this.DialogResult = DialogResult.No;
    }

Код метода:

 public bool SaveNewProduct(string ID, string Name, decimal Price)
    {
        
        string queryForAddInProduct = string.Format("Insert into dbo.[Другие товары] ([id_Товара], [Название], [Цена]) VALUES ('{0}', '{1}', '{2}')", ID, Name, Price);
        bool flagresult = false;
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand command = new SqlCommand(queryForAddInProduct, connection);
            try
            {
                connection.Open();
                command.ExecuteNonQuery();
                if (command.ExecuteNonQuery() == 1)
                    flagresult = true;
                connection.Dispose();
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.ToString());
            }
            return flagresult;
        }
    }

Ответы (1 шт):

Автор решения: CrazyElf

Так вы два раза один и тот же запрос выполняете, один раз без проверки результата, а второй раз уже с проверкой:

command.ExecuteNonQuery();          // 1-й раз 
if (command.ExecuteNonQuery() == 1) // 2-й раз
    flagresult = true;

Первое исполнение проходит успешно, а но втором уже выходит исключение. Поэтому и запись в базу добавляется и ошибка выходит.

→ Ссылка