Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5

Не добавляются данные в БД

06.03.2016, 14:36. Показов 3025. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день форумчане. Совсем недавно начал изучать Entity Framework 6 . На данный момент у меня не получается правильно добавить данные в БД. Имеется 4 модели: Client, Direction, Service и Discount.
Client и Direction, Direction и Service - эти модели связаны между собой при помощи связи многие ко многим, а Client и Discount - эти модели связаны между собой при помощи связи один ко многим.
Прилагаю код:
Client:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public int Id { get; set; }
        public string Lastname { get; set; }
        public string Name { get; set; }
        public string MiddleName { get; set; }
        public string Date { get; set; }
        public string AgeCategory { get; set; }
        public virtual ICollection<Direction> Directions { get; set; }
        public Client()
        {
         Directions = new List<Direction>();
        }
        public int? DiscountId { get; set; }
        public Discount Discount { get; set; }
Direction:
C#
1
2
3
4
5
6
7
8
9
10
public int Id { get; set; }
        public string NameOfService { get; set; }
        public string Description { get; set; }
        public virtual ICollection<Client> Clients { get; set; }
        public virtual ICollection<Service> Services { get; set; }
        public Direction()
        {
            Clients = new List<Client>();
            Services = new List<Service>();
        }
Service:
C#
1
2
3
 public int Id { get; set; }
        public string Duration { get; set; }
        public int Cost { get; set; }
Discount:
C#
1
2
3
4
5
6
7
8
public int Id { get; set; }
        public int Code { get; set; }
        public int Size { get; set; }
        public ICollection<Client> Clients { get; set; }
        public Discount()
        {
        Clients = new List<Client>();
        }
CenterContext:
C#
1
2
3
4
5
6
7
8
public CenterContext()
            : base("CenterDB")
        { }
 
        public DbSet<Client> Clients { get; set; }
        public DbSet<Direction> Directions { get; set; }
        public DbSet<Service> Services { get; set; }
        public DbSet<Discount> Discounts { get; set; }
Добавление данных:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using (var db = new CenterContext())
            {
                var client1 = new Client {Lastname = "Ivanov", Name = "Alexey",MiddleName = "Nikolaevich", Date="06.10.1895", AgeCategory = "Adult"};
                db.Clients.Add(client1);
                db.SaveChanges();
                var direction1 = new Direction { NameOfService = "Bassejn", Description = "GOooddfefhiefihef" };
                db.Directions.AddRange(new List<Direction> { direction1 });
                db.SaveChanges();
                var service1 = new Service { Duration = "OOKKKK", Cost = 20000 };
                db.Services.AddRange(new List<Service> { service1 });
                db.SaveChanges();
                var discount1 = new Discount { Code = 1234556, Size = 2 };
                db.Discounts.AddRange(new List<Discount> { discount1 });
                db.SaveChanges();
                }
Все необходимые таблицы были успешно созданы и в них были добавлены поля.
Помогите пожалуйста исправить ошибку!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2016, 14:36
Ответы с готовыми решениями:

Не обновляются/добавляются данные данные через клиент
привет форумчане,не обновляются данные через клиент при нажатии на кнопку ничего не происходит form1.cs using System.Data; using...

Не добавляются данные в БД
Я создал базу данных access и связал ее с visual studio 2013, создал в visual 6 форм и на все добавил по 1 таблице из базы данных. access и...

Не добавляются данные в таблицу БД
Пытаюсь поочередно добавить данные в 3 таблицы БД: улица, адрес и постоянные клиенты. В улицу и адрес ничего не сохраняется, хотя программа...

22
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
06.03.2016, 19:13
В чем проблема, данные просто не добавляются или выходит ошибка?
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
06.03.2016, 19:19  [ТС]
просто не добавляются.
0
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
06.03.2016, 20:33
Строка подключения соответствует той базе, в которую идут вставки?
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
06.03.2016, 20:43  [ТС]
нашел кажется в чем дело
0
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
06.03.2016, 20:49
Цитата Сообщение от Resume Посмотреть сообщение
нашел кажется в чем дело
Хвала Аллаху.!
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
06.03.2016, 20:51  [ТС]
Пaтрик,
Да не Хвала Аллаху, потому что ошибку в строке подключения исправил, но данные по-прежнему не добавляются.
вот строка подключения:
XML
1
2
3
4
<connectionStrings>
    <add name="CenterDB" connectionString="data source=(localdb)\v11.0;Initial Catalog=center;Integrated Security=True;"
 providerName="System.Data.SqlClient"/>
  </connectionStrings>
0
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
06.03.2016, 20:54
Я даже не знаю, что сказать ибо это слишком тривиально.
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
06.03.2016, 20:56  [ТС]
для Вас это слишком тривиально, а для меня пока нет.
0
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
06.03.2016, 21:00
В Diagnostic Tools окно должны логироваться все запросы, которые отправляются в базу. Посмотрите, они есть в этом окне?
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
06.03.2016, 21:36  [ТС]
Это?
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Операция рефакторинга Rename с помощью ключа пропущена, элемент [dbo].[Table].[Name] (SqlSimpleColumn) не будет переименован в Lastname
Message SQL00000 Выполняется создание [dbo].[Table]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется создание [dbo].[Client]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется удаление [dbo].[Table]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется создание [dbo].[Direction]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется создание [dbo].[Service]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется создание [dbo].[Discount]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется изменение [dbo].[Client]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется удаление FK_dbo.DirectionClients_dbo.Clients_Clie nt_Id...
Message SQL00000 Выполняется удаление [dbo].[Clients]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется удаление [dbo].[DirectionClients]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется удаление FK_dbo.Services_dbo.Directions_Direction _Id...
Message SQL00000 Выполняется удаление [dbo].[Directions]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется удаление [dbo].[Discounts]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется удаление [dbo].[Services]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
Обновление (localdb)\v11.0 :: center.mdf
Message SQL00000 Выполняется удаление [dbo].[__MigrationHistory]...
Message SQL00000 Транзакции обновления базы данных успешно завершены.
Message SQL00000 Обновление завершено.
0
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
06.03.2016, 21:54
Цитата Сообщение от Resume Посмотреть сообщение
удаление
Меня вот это смущает, попробуйте вместо Code First, сделать Database First (или как там оно называется, когда все таблица отображаются в дизайнере).

Добавлено через 5 минут
В класс CenterContext добавьте статический конструктор:
C#
1
2
3
4
static CenterContext()
{
    Database.SetInitializer<CenterContext>(null);
}
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
06.03.2016, 23:40  [ТС]
Вот такая Database First получается:
Миниатюры
Не добавляются данные в БД  
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
06.03.2016, 23:42  [ТС]
Данные добавились успешно только один раз. Дальше выскакивает ошибка:
Миниатюры
Не добавляются данные в БД  
0
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
07.03.2016, 10:46
Ну так теперь посмотрите, что лежит в InnerException.
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
07.03.2016, 20:37  [ТС]
посмотрел. Дело все в том, что каждый раз при инициализации ID = 0 и данные не могут записаться, потому что ID уже такой имеется!
0
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
07.03.2016, 20:43
Resume, первичные ключи нужно было сделать identity, если не можете генерировать ключи сами.
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
07.03.2016, 23:44  [ТС]
А на каком шаге нужно было сделать?
0
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
08.03.2016, 10:16
Resume, когда таблицы создаете.
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
08.03.2016, 14:53  [ТС]
Вот создан первичный ключ, но данные не добавляются.
Миниатюры
Не добавляются данные в БД  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.03.2016, 14:53
Помогаю со студенческими работами здесь

Не добавляются данные в базу
Помогите, пожалуйста!! Не понимаю в чем ошибка. public partial class DealPlace : WindowsFormsApplicationDeal.FormMain { ...

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

Почему не добавляются данные в базу
Ребят, подскажите начинающей. Вот код: sqlConnection1.Open(); SqlTransaction trans =...

Не добавляются данные на сервер в базу Access
Всем привет! Есть страница новостей, в ней есть кнопка добавить новость. Если я добавляю новость на самом сервере (на серваке...

Не добавляются данные в БД (Microsoft SqlServer Compact Edition)
Проблема с добавлением данных. К базе все подключается. Думаю проблема в строке подключения. Мне нужно чтобы путь не был задан явно. Если...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru