Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Pancheska
4 / 4 / 2
Регистрация: 13.03.2010
Сообщений: 141
1

При добавлении записи в одну из таблиц БД - Foreign Key не прописывается автоматически

12.05.2013, 00:33. Просмотров 452. Ответов 0
Метки нет (Все метки)

Очень нужен совет и помощь!
Есть две таблицы в БД.
Одна с почтовыми индексами, другая с юзерами.
В таблице юзеров есть FK (=ZipID из таблицы почтовых индексов).
Как я себе представляю, что при добавлении записи адреса в таблицу юзеров при условии совпадения почт. индекса из первой таблицы, кроме адреса должен еще автоматически заполнятся поле FK с ZipID из первой таблицы.
Но этого не происходит.
Не пойму почему.
Вот часть кода:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 public class User
    {
        public int UserID { get; set; }
        public string Name { get; set; }
        public string ZipCode { get; set; }
        public string Country { get; set; }
        public string State { get; set; }
        public string City { get; set; }
 
        public ZipCode ZipID { get; set; }  //Foreign Key
 
        public User(string _Name, string _Zip, string _Country, string _State, string _City)
        {
            Name = _Name;
            ZipCode = _Zip;
            Country = _Country;
            State = _State;
            City = _City;
           
        }
    }
 
public class ZipCode
    {
        [Key]
        public int ZipID { get; set; }
        public string Zip { get; set; }
        public string Country { get; set; }
        public string State { get; set; }
        public string City { get; set; }     
 
        public ICollection<User> Users { get; set; }
    }
 
public class Addresses: DbContext
    {  
        public DbSet<ZipCode> Zips { get; set; }
        public DbSet<User> Users { get; set; }
    }
 
protected void btnSubmit_Click(object sender, EventArgs e)
        {
            if (IsValid)
            {
                ZipCode = txtbxZipCode.Text;
                Country = DDLCountry.Text;
                State = txtbxState.Text;
                City = txtbxCity.Text;
                Name = txtbxName.Text;
 
                Addresses dbAddresses = new Addresses();
 
                List<ZipCode> ZipC = (from z in dbAddresses.Zips
                                      where z.Zip == ZipCode
                                      select z).ToList();
 
                 for (int i = 0; i < ZipC.Count; i++)
                    {
                        if ((ZipC[i].Country.ToString() == Country) && (ZipC[i].State.ToString() == State) && (ZipC[i].City.ToString() == City))
                        {
 
                            User newUser = new User(Name, ZipCode, Country, State, City);
                            
                            dbAddresses.Users.Add(newUser);
                            dbAddresses.SaveChanges();                          
                        }
                        else
                        {
                            Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "1",
                            "<script>alert('Zip/Postal code doesn’t match region. Are you sure you want to save this data?');</script>");
                        }
                    }
                }
            }
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 00:33
Ответы с готовыми решениями:

Ошибка Key Violation при добавлении записи в БД
Подскажите, пожалуйста, кто знает. В БД при добавлении записи появляется ошибка Key Violation. Не...

Объединение таблиц по двум foreign key
Помогите правильно сформировать запрос. Есть 2 таблицы: услуги и пользователи. В таблице &quot;услуги&quot;...

Join 2-х таблиц без foreign key
class Feedback(models.Model): id = models.BigAutoField(primary_key=True) user_id =...

При попытке заполнения таблиц через сторонний менеджер баз выскакивает ошибка "foreign key mismatch"
private const string path = @&quot;C:\klient.db3&quot;; private static SQLiteConnection connect =...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2013, 00:33

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

Ошибка при добавлении записи в таблицу: Duplicate entry '' for key
У меня есть таблица user и пара колонок в ней под именем color1, color2 вобщем нужно добавить...

При добавлении новой записи в dbgrideh автоматически отмечать галочкой
Всем привет. я добавляю в новую запись в dbgrideh dbgrideh.datasource.dataset.insert у меня есть...

При добавлении записи в БД происходит ошибка "violation of PRIMARY KEY constraint)"
Ребята, тут такая неразбериха, я по идее правильные ввожу данные, но почему то выскакивает данная...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.