Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 28.03.2020
Сообщений: 12

Список объектов List<Staff>

05.05.2021, 01:35. Показов 1589. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1)Могу ли я реализовать заполнение списка из БД при при запуске формы потому, что он обнуляется после перезапуска(метод, который сначала выполняет personal.Clear(), а потом заполняет из БД с юзнием LINQ)?
2)Не удаляются объекты из списка. Хочу решить первым вопросом, обнуляя его перед этим.
3)Не изменяются поля объектов списка. Хочу решить первым вопросом, обнуляя его перед этим.


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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
    class Company
    {
        readonly string name="GachiSoft";
        List<Staff> personal = new List<Staff>();
 
        readonly SqlConnection con = new(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
 
        //добавить объект в список
        public void AddStaff(int id, string firstName, string lastName, string jobTitle, float wage, string phoneNumber, string address, DateTime dob, string gender)
        {
            try
            {
                string sqlExp = "insert into Employees(Id,FirstName,LastName,JobTitle,Wage,PhoneNumber,Address,DateOfBirthday,Gender) " +
                    "values(@id,@firstName,@lastName,@jobTitle,@wage,@phoneNumber,@address,@date,@gender)";
                using (con)
                {
                    con.Open();
                    SqlCommand command = new(sqlExp, con);
                    command.Parameters.Add(new SqlParameter("@id",id));
                    command.Parameters.Add(new SqlParameter("@firstName",firstName ));
                    command.Parameters.Add(new SqlParameter("@lastName", lastName));
                    command.Parameters.Add(new SqlParameter("@jobTitle", jobTitle));
                    command.Parameters.Add(new SqlParameter("@wage", wage));
                    command.Parameters.Add(new SqlParameter("@phoneNumber",phoneNumber));
                    command.Parameters.Add(new SqlParameter("@address", address));
                    command.Parameters.Add(new SqlParameter("@date", dob.ToShortDateString()));
                    command.Parameters.Add(new SqlParameter("@gender", gender));
                    command.ExecuteNonQuery();
                    con.Close();
 
                }
                if (jobTitle == "Менеджер")
                {
                    Manager manager = new(id, firstName, lastName, jobTitle, wage, phoneNumber, address, dob, gender);
                    personal.Add(manager);
                    MessageBox.Show(personal[0].ToString());
                }
                if (jobTitle == "Старший разработчик")
                {
                }
                if (jobTitle == "Младший Разработчик")
                {
                }
                if (jobTitle == "Бухгалтер" || jobTitle == "Секретарь")
                {
                    Staff staff = new(id, firstName, lastName, jobTitle, wage, phoneNumber, address, dob, gender);
                    personal.Add(staff);
                    MessageBox.Show(personal[0].ToString());
                }
                MessageBox.Show("Успешно добавлено");
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
            }
        }
 
        //удалить объект из списка
        public void RemoveStaff(int empid)
        {
            try
            {
                using (con)
                {
                    con.Open();
                    string query = "delete from Employees where Id='" + empid + "';";
                    SqlCommand cmd = new(query, con);
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Успешно удалено");
                    con.Close();
                }
 
                //не удаляет тут
                personal.RemoveAll( x=>x.Id  == empid);
                /*foreach(var s in personal)
                {
                    MessageBox.Show("списка");
                    if (s.Id==empid)
                    {
                        personal.Remove(s);
                        MessageBox.Show("Удалено из списка");
                    }
                }*/
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
            }
        }
 
 
        //изменение данных Объекта
        public void ChangeStaff(int id, string firstName, string lastName, string jobTitle, float wage, string phoneNumber, string address, DateTime dob, string gender)
        {
            try
            {
                string sqlExp = "update Employees set FirstName=@firstName,LastName=@lastName,JobTitle=@jobTitle,Wage=@wage," +
                    "PhoneNumber=@phoneNumber,Address=@address,DateOfBirthday=@date,Gender=@gender where Id=@id ;";
 
                using (con)
                {
                    con.Open();
                    SqlCommand command = new(sqlExp, con);
                    command.Parameters.Add(new SqlParameter("@id", id));
                    command.Parameters.Add(new SqlParameter("@firstName", firstName));
                    command.Parameters.Add(new SqlParameter("@lastName", lastName));
                    command.Parameters.Add(new SqlParameter("@jobTitle", jobTitle));
                    command.Parameters.Add(new SqlParameter("@wage", wage));
                    command.Parameters.Add(new SqlParameter("@phoneNumber", phoneNumber));
                    command.Parameters.Add(new SqlParameter("@address", address));
                    command.Parameters.Add(new SqlParameter("@date", dob.ToShortDateString()));
                    command.Parameters.Add(new SqlParameter("@gender", gender));
                    command.ExecuteNonQuery();
                    con.Close();
                }
 
                //не изменяет тут
                foreach (var s in personal)
                {
                    if (s.Id == id)
                    {
                        s.FirstName = firstName;
                        s.LastName = lastName;
                        s.JobTitle = jobTitle;
                        s.Wage = wage;
                        s.PhoneNumber = phoneNumber;
                        s.Address = address;
                        s.Gender = gender;
                        s.DateOfBirthday = dob;
 
                        MessageBox.Show("Изменено");
                    }
                }
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
            }
        }
}
Добавлено через 2 часа 31 минуту
Почти всё решено. Просто хочу спросить:
-Лучше сделать один метод, который будет очищать список и заново записывать или три метода для Добавления, Удаления, Изменения?

Добавлено через 16 минут
Жду пока удалят и общаюсь сам с собой потому, что общество не попевает за мной.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.05.2021, 01:35
Ответы с готовыми решениями:

Как получить список объектов List<object>
на клиенте запускаю List&lt;object&gt; items = service_connection.channel.GetServices(ssid); вылетает исключение на клиенте ...

Массив объектов класса List: Error CS0118: `list' is a `field' but a `type' was expected
Не могу понять что делаю не так, вот код: SimpleClass { } List&lt;SimpleClass&gt; list = new List&lt;SimpleClass&gt;(); list = new...

Копирование объектов List в другой List
Есть ли способ менее топорового копирования объектов одного List'а в другой List? List&lt;Card&gt; OriginalDeck = new List&lt;Card&gt;();...

4
05.05.2021, 07:57
 Комментарий модератора 
Цитата Сообщение от cyberjohn Посмотреть сообщение
Жду пока удалят
Правила2.3. Сообщения и темы, а также другой контент, размещаемый на форуме, по просьбам пользователей не удаляется и не закрывается.
0
1 / 1 / 0
Регистрация: 28.03.2020
Сообщений: 12
06.05.2021, 19:48  [ТС]
почему?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16142 / 11265 / 2888
Регистрация: 21.04.2018
Сообщений: 33,127
Записей в блоге: 2
06.05.2021, 20:35
Цитата Сообщение от cyberjohn Посмотреть сообщение
почему?
Такие вопросы к создателю Форума.
0
1 / 1 / 0
Регистрация: 28.03.2020
Сообщений: 12
06.05.2021, 20:38  [ТС]
Справедливо, но ведь иногда не хватает кнопки удаления темы или хтяб испытательного срока. в течение которого можно удалить тему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2021, 20:38
Помогаю со студенческими работами здесь

Вернуть список списков (List<List<>>)
Всем доброго дня! Ситуация следующая, из файла построчно читаются значения, одна строка один список, в каждой строке одинаковое...

Упорядочить List по классам объектов
Реализовал , не работает, не пойму почему Class MyComparer public class MyComparer : IComparer&lt;Transport&gt; { int...

List<T> сортировка объектов. Возможно ли?
Как правильно произвести сортировки Листа. Вот код ,который я намудрил, но он не комплируеться :( темы сортировки читал, там о такой...

Сериализация List массива объектов
Привет всем, можете пожалуйста объяснить как сделать xml-серелизацию List'а в котором хранятся объекты. Всем спасибо :)

Добавление объектов в List<object>
Добавление обектов в лист List&lt;object&gt; Есть проблема пытаюсь добавлять новые обекты но добавляеться один и тот же заменяя прошлый...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru