Один и тот же первичный ключ, указывающий на несколько значений в столбце. Вставка в C # - PullRequest
0 голосов
/ 08 ноября 2019

Я не могу сделать и найти, как я могу вставить несколько значений в один столбец, связанный с одним первичным ключом.

Это то, что я ожидаю быть в моей базе данных sql: enter image description here

  • Я включил автоинкремент для первичного ключа (packageid)
  • serviceidF - это внешний ключ

       for (int i = 0; i < 2; i++)
          {
              if (i == 0)
              {
                query = "Insert Into tbl_Packages (packageName, 
                packagePrice, serviceId_F) values ('" + _ppnM3 + "', '" + 
                _pppM3 + "', '" + _i1M3 + "')";
                cmd = new SqlCommand(query, PC.connect());
                cmd.ExecuteNonQuery();
                PC.disconnect();
    
              }
            else if (i == 1)
            {
                query1 = "Insert Into tbl_Packages (packageName, 
                packagePrice, serviceId_F) values ('" + _ppnM3 + "', '" + 
                _pppM3 + "', '" + _i2M3 + "')";
                cmd1 = new SqlCommand(query1, PC.connect());
                cmd1.ExecuteNonQuery();
                PC.disconnect();
            }
         }
    

Это то, что делает мой запрос (я знаю, что у меня естьразрешено автоматическое увеличение основного идентификатора): enter image description here

1 Ответ

1 голос
/ 08 ноября 2019

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

Кроме того, используйте параметры, а не конкатенацию строк.

Кроме того, что с for .... if? Вы только что сделали 2 заявления очень сложными!

Возможно, вы упустили фактическую таблицу "package", и то, что вы создаете, является таблицей "sub package", где ID пакета - это FK, а не PK. Очень трудно сказать, хотя.

...