Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 29.08.2022
Сообщений: 8

Поиск и вывод нужной информации в DataGrid через кнопку и TextBox

14.07.2023, 18:03. Показов 1523. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, у меня возникла проблема. По заданию нужно, чтобы пользователь получил список недовольных клиентов и их жалоб. Для этого он вводит впечатление ("положительное" или "отрицательное") в textBox1 и нажимает на кнопку "Выполнить", и только после этого должна вывестись вся информация о пользователях, о которых в колонке "Впечатление" указано "Отрицательное".
Подскажите, пожалуйста, как мне это можно реализовать?
Миниатюры
Поиск и вывод нужной информации в DataGrid через кнопку и TextBox  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.07.2023, 18:03
Ответы с готовыми решениями:

Вывод информации в textbox из DataGrid WPF
Как сделать, чтобы при выборе любой строки в DataGrid, вся информация которая записана в БД, выводилась в textbox? // Писал код, но увы, не...

Поиск в DataGrid через Textbox
Всем привет, у меня База данных привязана к DataGrid. Все данные отображаются при загрузке Окна, вот код: private void...

Поиск по datagrid через textbox WPF
Здравствуйте! Столкнулся с такой проблемой, не могу реализовать поиск. Вообщем есть форма, на ней DataGrid, заполняется с базы MS Access ...

18
fly
 Аватар для I can
4955 / 4644 / 844
Регистрация: 13.04.2015
Сообщений: 9,840
14.07.2023, 18:05
I c i e, таблица к базе подключена?
0
0 / 0 / 0
Регистрация: 29.08.2022
Сообщений: 8
14.07.2023, 18:08  [ТС]
Да, подключена через DataSet, если это о чем то скажет.
0
fly
 Аватар для I can
4955 / 4644 / 844
Регистрация: 13.04.2015
Сообщений: 9,840
14.07.2023, 18:10
Тогда надо запрос писать к базе и выводить в DataGridView
0
0 / 0 / 0
Регистрация: 29.08.2022
Сообщений: 8
14.07.2023, 18:15  [ТС]
Это понятно, просто я не имею понятия об этом, т к первый опыт, скажем так. Поэтому прошу помочь))

могу добавить о том, как заполнялась таблица данными.


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
private SqlConnection SqlConnection = null;
        public Zapros1()
        {
            InitializeComponent();
            LoadData();
            dataGrid5.AllowUserToAddRows = false;
        }
 
        private void LoadData()
        {
            string ConnectString = "Data Source=DESKTOP-8A63J53\\SQLEXPRESS;Initial Catalog=Complex;"+
                "Integrated Security=True";
 
            SqlConnection myConnection = new SqlConnection(ConnectString);
            myConnection.Open();
 
            string query = "SELECT * FROM Client ORDER BY ID";
 
            SqlCommand command = new SqlCommand(query, myConnection);   
 
            SqlDataReader reader = command.ExecuteReader();
 
            List<string[]> data = new List<string[]>();
 
            while (reader.Read())
            {
                data.Add(new string[10]);
 
                data[data.Count - 1][0] = reader[0].ToString();
                data[data.Count - 1][1] = reader[1].ToString();
                data[data.Count - 1][2] = reader[2].ToString();
                data[data.Count - 1][3] = reader[3].ToString();
                data[data.Count - 1][4] = reader[4].ToString();
                data[data.Count - 1][5] = reader[5].ToString();
                data[data.Count - 1][6] = reader[6].ToString();
                data[data.Count - 1][7] = reader[7].ToString();
                data[data.Count - 1][8] = reader[8].ToString();
                data[data.Count - 1][9] = reader[9].ToString();
            }
 
            reader.Close();
 
            myConnection.Close();
 
            foreach (string[] s in data)
                dataGrid5.Rows.Add(s);
        }
0
fly
 Аватар для I can
4955 / 4644 / 844
Регистрация: 13.04.2015
Сообщений: 9,840
14.07.2023, 18:34
Цитата Сообщение от I c i e Посмотреть сообщение
string query = "SELECT * FROM Client ORDER BY ID";
Ну вот примерно то же самое, только условие WHERE добавить.
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,748
Записей в блоге: 1
14.07.2023, 22:41
А что если уже загруженные данные пофильтровать?
Только нужно будет прослоечку ввести для этого вроде BindingSource.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,633
Записей в блоге: 3
15.07.2023, 12:27
Цитата Сообщение от I c i e Посмотреть сообщение
Для этого он вводит впечатление ("положительное" или "отрицательное")
А почему именно вводит? Этих впечатлений всего два, насколько я понял. Почему бы их не выбирать?
Цитата Сообщение от I c i e Посмотреть сообщение
могу добавить о том, как заполнялась таблица данными
Очень плохо заполнялась. Более того, после выборки нужных записей из БД, нужно будет очистить грид и перезаписать отобранными данными, т.е. повторить "горе-заполнение" еще раз.

Более правильный подход примерно такой:
Создаю базу и заполняю данными:
Кликните здесь для просмотра всего текста
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
create database TestDb2
go
use TestDb2
go
 
create table Users
(
    u_id int identity (1000,1) primary key,
    u_name nvarchar (50) not null,
    build_num int not null,
    room_num int not null,
    feedback nvarchar (50) not null,
    impression nvarchar (50) not null,
)
go
 
insert into Users values('Иванов А.С.', 2, 79, 'Все хорошо!!!', 'Положительное')
insert into Users values('Петров П.П.', 5, 122, 'Плохо', 'Отрицательное')
insert into Users values('Сидоров С.С.', 3, 54, 'Супер!', 'Положительное')
insert into Users values('Остеопорозова Н.И.', 5, 360, 'Все ужасно!!!', 'Отрицательное')
go
select *from Users

Создаю модель пользователя:
class UserModel
C#
1
2
3
4
5
6
7
8
9
    internal class UserModel
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Build { get; set; }
        public int Room { get; set; }
        public string FeedBack { get; set; }
        public string Impression { get; set; }
    }

Для подключения к БД создаю абстрактный класс:
abstract class DbConnection
C#
1
2
3
4
5
6
7
8
    internal abstract class DbConnection
    {
        private readonly string connectionString;
        public DbConnection() =>
            connectionString = @"Data Source=DESKTOP-BG3KAO8\SQLEXPRESS;Initial Catalog=TestDb2;Integrated Security=True;";
        protected SqlConnection GetConnection() =>
            new SqlConnection(connectionString);
    }

Создаю репозиторий:
Интерфейс:
interface IUserRepository
C#
1
2
3
4
5
    internal interface IUserRepository
    {
        IEnumerable<UserModel> GetAll();
        IEnumerable<UserModel> GetByValue(string value);
    }

Класс (наследуемся от интерфейса и класса коннекшена к БД):
class UserRepository
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
    internal class UserRepository : DbConnection, IUserRepository
    {
        public IEnumerable<UserModel> GetAll()
        {
            var userList = new List<UserModel>();
            using (var connection = GetConnection())
            {
                using (var command = new SqlCommand())
                {
                    connection.Open();
                    command.Connection = connection;
                    command.CommandText = "Select *from Users order by u_name";
                    var reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        var userModel = new UserModel
                        {
                            Id = (int) reader["u_id"],
                            Name = reader["u_name"].ToString(),
                            Build = (int) reader["build_num"],
                            Room = (int) reader["room_num"],
                            FeedBack = reader["feedback"].ToString(),
                            Impression = reader["impression"].ToString()
                        };
                        userList.Add(userModel);
                    }
                }
            }
            return userList;
        }
 
        public IEnumerable<UserModel> GetByValue(string value)
        {
            var userList = new List<UserModel>();
            using (var connection = GetConnection())
            {
                using (var command = new SqlCommand())
                {
                    connection.Open();
                    command.Connection = connection;
                    command.CommandText = @"Select *from Users where impression like @impres+'%' order by u_name";
                    command.Parameters.Add("@impres", SqlDbType.NVarChar).Value = value;
 
                    var reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        var userModel = new UserModel
                        {
                            Id = (int) reader["u_id"],
                            Name = reader["u_name"].ToString(),
                            Build = (int) reader["build_num"],
                            Room = (int) reader["room_num"],
                            FeedBack = reader["feedback"].ToString(),
                            Impression = reader["impression"].ToString()
                        };
                        userList.Add(userModel);
                    }
                }
            }
            return userList;
        }
    }

И наконец, в коде формы реализуем это все:
Кликните здесь для просмотра всего текста
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
    public partial class Form1 : Form
    {
        private readonly IUserRepository repository;
        private readonly BindingSource userBindingSource;
        private IEnumerable<UserModel> userList;
 
        public Form1()
        {
            InitializeComponent();
            comboBox1.SelectedIndex = 0;
            button1.Select();
 
            repository = new UserRepository();
            this.userBindingSource = new BindingSource();
            LoadAllUsers();
            dataGridView1.DataSource = userBindingSource;
        }
 
        private void LoadAllUsers()
        {
            userList = repository.GetAll();
            userBindingSource.DataSource = userList;
        }
 
        // Select
        private void button1_Click(object sender, System.EventArgs e)
        {
            bool emptyValue = string.IsNullOrWhiteSpace(comboBox1.SelectedItem.ToString());
            if (!emptyValue)
                userList = repository.GetByValue(comboBox1.SelectedItem.ToString());
            else userList = repository.GetAll();
            userBindingSource.DataSource = userList;
        }
 
        // Reset
        private void button2_Click(object sender, System.EventArgs e)
        {
            LoadAllUsers();
        }
    }

Работа приложения:
0
0 / 0 / 0
Регистрация: 29.08.2022
Сообщений: 8
18.07.2023, 13:55  [ТС]
Крутой вариант написания этой задачки, но как мне быть, если бд уже есть и она подключена, более того есть формы, на которых отображается информация из бд при помощи всего одной строчки

C#
1
2
3
4
5
6
private void WinBuilding_Load(object sender, EventArgs e)
        {
            DataGrid1.AllowUserToAddRows = false;
            // TODO: данная строка кода позволяет загрузить данные в таблицу "dataSet.Building". При необходимости она может быть перемещена или удалена.
            this.buildingTableAdapter.Fill(this.dataSet.Building);
        }
но запросы я не знаю как написать здесь...

Подключение было осуществлено по этому видео: https://www.youtube.com/watch?v=VBrvvBPYbj4&t=56s

Нужно ли создавать в таком случае новую бд, и как реализовать адекватно в коде..
Миниатюры
Поиск и вывод нужной информации в DataGrid через кнопку и TextBox   Поиск и вывод нужной информации в DataGrid через кнопку и TextBox  
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,748
Записей в блоге: 1
18.07.2023, 16:37
I c i e, по этому примеру добавляете источник привязки, например source1. Тогда ваша задача будет решаться одной строкой
C#
1
source1.Filter = "Впечатление = 'Положительное'";
При всём этом загрузка данных никак не изменится.
0
0 / 0 / 0
Регистрация: 29.08.2022
Сообщений: 8
25.07.2023, 15:57  [ТС]
Попробовала, не работает ...

Изменила форму, пользователь вводит через clientBindingNavigator слово "Отрицательное",
а затем нажимает кнопку "Выполнить". И после этого должны вывестись клиенты с отрицательным впечатлением


Оформила код в кнопке, но почему то не работает кнопка, ничего не происходит при нажатии, хотя ошибок никаких не выводит
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void button1_Click(object sender, EventArgs e)
        {
            string cmd;
            
            if(this.toolStripTextBox1.Text == "Отрицательное")
            {
                cmd = "SELECT * FROM Client WHERE Впечатление = 'Отрицательное' ";
                // создать соединение с базой данных
                SqlConnection sql_connect = new SqlConnection(connStr);
                // создать команду на языке SQL
                SqlCommand sql_comm = new SqlCommand(cmd, sql_connect);
 
                sql_connect.Open(); // открыть соединение
                sql_comm.ExecuteNonQuery(); // выполнить команду на языке SQL
                sql_connect.Close(); // закрыть соединение
 
                this.clientTableAdapter.Fill(this.dataSet.Client);
            }
            else
            {
                MessageBox.Show("Неправильно!");
            }
Миниатюры
Поиск и вывод нужной информации в DataGrid через кнопку и TextBox  
0
 Аватар для Andrey-MSK
3353 / 2239 / 388
Регистрация: 14.08.2018
Сообщений: 7,569
Записей в блоге: 4
25.07.2023, 16:14
Цитата Сообщение от I c i e Посмотреть сообщение
C#
1
cmd = "SELECT * FROM Client WHERE Впечатление = 'Отрицательное' ";
А так?
C#
1
cmd = "SELECT * FROM Client WHERE Впечатление = N'Отрицательное'";
Добавлено через 3 минуты
I c i e, И лучше оформить с try .. catch
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
private void button1_Click(object sender, EventArgs e)
{
    string cmd;
 
    if(this.toolStripTextBox1.Text == "Отрицательное")
    {
        try
        {
            cmd = "SELECT * FROM Client WHERE Впечатление = N'Отрицательное'";
            // создать соединение с базой данных
            SqlConnection sql_connect = new SqlConnection(connStr);
            // создать команду на языке SQL
            SqlCommand sql_comm = new SqlCommand(cmd, sql_connect);
 
            sql_connect.Open(); // открыть соединение
            sql_comm.ExecuteNonQuery(); // выполнить команду на языке SQL
            sql_connect.Close(); // закрыть соединение
 
            this.clientTableAdapter.Fill(this.dataSet.Client);
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    else
    {
        MessageBox.Show("Неправильно!");
    }
}
Тогда ошибки увидите.

Добавлено через 2 минуты
А зачем вот это
Цитата Сообщение от I c i e Посмотреть сообщение
sql_comm.ExecuteNonQuery(); // выполнить команду на языке SQL
И вот это
Цитата Сообщение от I c i e Посмотреть сообщение
this.clientTableAdapter.Fill(this.dataSe t.Client);
Вместе? Тем более первое вообще ничего не делает для загрузки данных...
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
25.07.2023, 16:16
Цитата Сообщение от I c i e Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void button1_Click(object sender, EventArgs e)
        {
            string cmd;
            
            if(this.toolStripTextBox1.Text == "Отрицательное")
            {
                cmd = "SELECT * FROM Client WHERE Впечатление = 'Отрицательное' ";
                // создать соединение с базой данных
                SqlConnection sql_connect = new SqlConnection(connStr);
                // создать команду на языке SQL
                SqlCommand sql_comm = new SqlCommand(cmd, sql_connect);
 
                sql_connect.Open(); // открыть соединение
                sql_comm.ExecuteNonQuery(); // выполнить команду на языке SQL
                sql_connect.Close(); // закрыть соединение
 
                this.clientTableAdapter.Fill(this.dataSet.Client);
            }
            else
            {
                MessageBox.Show("Неправильно!");
            }
Открыли подключение, выполнили запрос, НЕ забрали его результат, закрылие соединение. После чего сделали какой-то 'Fill' откуда-то куда-то совершенно не связанный с выполненным ранее запросом.
0
 Аватар для Andrey-MSK
3353 / 2239 / 388
Регистрация: 14.08.2018
Сообщений: 7,569
Записей в блоге: 4
25.07.2023, 16:17
Цитата Сообщение от kotelok Посмотреть сообщение
После чего сделали какой-то 'Fill'
Fill сам открывает и закрывает соединение. А вот SQL для него нужно было настроить на нужный запрос...
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
25.07.2023, 16:20
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Fill сам открывает и закрывает соединение.
Это да. Просто там у человека до этого 'Fill' есть ещё ручное открытие/закрытие подключения и выполнение селекта, результаты которого просто игнорируются.
0
 Аватар для Andrey-MSK
3353 / 2239 / 388
Регистрация: 14.08.2018
Сообщений: 7,569
Записей в блоге: 4
25.07.2023, 16:22
Цитата Сообщение от kotelok Посмотреть сообщение
и выполнение селекта
Там SELECT не выполняется, там ExecuteNonQuery, который не получает набор набор данных...
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
25.07.2023, 16:27
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Там SELECT не выполняется, там ExecuteNonQuery, который не получает набор набор данных...
Я не знаю как оно там внутри устроено, анализирует ли оно тип запроса и выполняет ли выборочное выполнение в зависимости от его текста. Но если даже заменить на 'ExecuteReader', суть кода вообще не изменится. И даже если считать результат куда-нибудь. Т.е. именно сам код смысла не имеет. Т.к. в конце вызывается 'Fill', который про этот запрос вообще ничего не знает и заполняет набор данных на базе своих настроек.
0
0 / 0 / 0
Регистрация: 29.08.2022
Сообщений: 8
04.08.2023, 12:44  [ТС]
Цитата Сообщение от kotelok Посмотреть сообщение
Т.е. именно сам код смысла не имеет. Т.к. в конце вызывается 'Fill', который про этот запрос вообще ничего не знает и заполняет набор данных на базе своих настроек.
Тогда как мне это реализовать в коде напишите, пожалуйста, я пойму и тогда смогу по аналогии с этим запросом написать код к другим запросам. Как верно написать код к этому запросу, ни где не могу найти, покажите плиз

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void button1_Click(object sender, EventArgs e)
        {
            string cmd;
            
            if(this.toolStripTextBox1.Text == "Отрицательное")
            {
                cmd = "SELECT * FROM Client WHERE Впечатление = 'Отрицательное' ";
                // создать соединение с базой данных
                SqlConnection sql_connect = new SqlConnection(connStr);
                // создать команду на языке SQL
                SqlCommand sql_comm = new SqlCommand(cmd, sql_connect);
 
                sql_connect.Open(); // открыть соединение
                sql_comm.ExecuteNonQuery(); // выполнить команду на языке SQL
                sql_connect.Close(); // закрыть соединение
 
                this.clientTableAdapter.Fill(this.dataSet.Client);
            }
            else
            {
                MessageBox.Show("Неправильно!");
            }
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,748
Записей в блоге: 1
04.08.2023, 13:00
I c i e, kotelok ведёт речь об адаптере, у которого есть свойства для каждой из команд. Все команды кроме select можно построить используя SqlCommandBuilder, но это отдельная тема. Для того чтобы адаптер заработал нужно задать SelectCommand.
Например так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void button1_Click(object sender, EventArgs e)
        {
            string cmd;
            
            if(this.toolStripTextBox1.Text == "Отрицательное")
            {
                cmd = "SELECT * FROM Client WHERE Впечатление = 'Отрицательное' ";
                // создать соединение с базой данных
                SqlConnection sql_connect = new SqlConnection(connStr);
                // создать команду на языке SQL
                SqlCommand sql_comm = new SqlCommand(cmd, sql_connect);
 
                this.clientTableAdapter.SelectCommand = sql_comm;
 
                this.clientTableAdapter.Fill(this.dataSet.Client);
            }
            else
            {
                MessageBox.Show("Неправильно!");
            }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.08.2023, 13:00
Помогаю со студенческими работами здесь

Поиск записи в datagrid через textbox
Здраствуйте! Пытаюсь сделать поиск по примеру, но ничего не получается...

Поиск строк в БД, совпадающих с введённым текстом в TextBox и вывод их в DataGrid
Подскажите, как можно реализовать данную функцию: Поиск строк в БД, совпадающих с введённым текстом в TextBox и вывод их в DataGrid? В...

Выполнить поиск по DataGrid через событие TextBox.TextChanged
&lt;DataGrid Name=&quot;dg&quot; Grid.Row=&quot;2&quot; Background=&quot;MistyRose&quot; AutoGenerateColumns=&quot;False&quot; Width=&quot;auto&quot; Margin=&quot;0,0,0,158&quot; IsReadOnly=&quot;True&quot; &gt; ...

Вывод данных из XML в TextBox/CheckList через DataGrid
Имеется Xml файл : &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;Осмотры&gt; &lt;Осмотр GUID=&quot;f4279a95-df1e-4096-b999-83a855cd9749&quot;&gt; ...

Вывод нужной информации
Подскажите как вывести все новости(только News) из массива? #include &quot;advert.h&quot; #include &quot;article.h&quot; #include...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru