Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422

Не отображается таблица

10.02.2019, 18:11. Показов 1262. Ответов 13

Студворк — интернет-сервис помощи студентам
Не вижу скорее всего ошибку, но и найти не могу... p.s проверял код не один раз

Главная форма

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 public partial class Form9 : Form
 
    {
        private BindingSource bindingSorce = new BindingSource();
 
        public Form9()
 
        {
            InitializeComponent();
            DBUtil_books.ReadBooks();
            dataGridView1.DataSource = Data_books.GetSomeTypeItems_books();
        }
 
 
        //GLOBALS VARS
        public string connStr = "server=127.0.0.1;user=root;password=;database=book_rental";
Классы

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 class Data_books
    {
        public static List<SomeTypeClass_books> SomeTypeRepository_books = new List<SomeTypeClass_books>();
 
        public static IEnumerable<SomeTypeClass_books> GetSomeTypeItems_books()
        {
            return SomeTypeRepository_books;
        }
 
        public static void AddSomeTypeItem_books(SomeTypeClass_books item)
        {
            SomeTypeRepository_books.Add(item);
        }
 
        public static SomeTypeClass_books GetSomeTypeItem_books(int id)
        {
            return SomeTypeRepository_books.Where(x => x.ID == id).First();
        }
    }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class SomeTypeClass_books
    {
        public int ID { get; set; }
        public string name { get; set; }
        public string author { get; set; }
        public string year { get; set; }
        public string genre { get; set; }
        public string stat_avialab { get; set; }
        public string coll_val { get; set; }
        public string rent_cost { get; set; }
        public string e_variant { get; set; }
        public string count { get; set; }
        public string img { get; set; }
    }
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
    static class DBUtil_books
    {
 
        private static string connStr = "server=127.0.0.1;user=root;password=;database=book_rental";
 
        public static void ReadBooks()
        {
            using (MySqlConnection connection = new MySqlConnection(connStr))
            {
                try
                {
                    connection.Open();
                    MySqlCommand command = new MySqlCommand();
                    command.Connection = connection;
                    command.CommandText = "SELECT * FROM books";
                    MySqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Data_books.AddSomeTypeItem_books(
                            new SomeTypeClass_books()
                            {
                                ID = reader.GetInt32(0),
                                name = reader.GetString(1),
                                author = reader.GetString(2),
                                year = reader.GetDateTime(3).ToString("yyyy"),
                                genre = reader.GetString(4),
                                stat_avialab = reader.GetString(5),
                                coll_val = reader.GetFloat(6).ToString(),
                                rent_cost = reader.GetFloat(7).ToString(),
                                e_variant = reader.GetString(8),
                                count = reader.GetString(9),
                                img = reader.GetString(10)
                            }
                            );
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    // error to log output
                }
            }
        }
    }
Добавлено через 2 минуты
Отображаются только названия полей сверху грида
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2019, 18:11
Ответы с готовыми решениями:

Не отображается таблица
Использовал БД Access using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

Не отображается изменённая таблица в DataGridView
здравствуйте. есть sql бд и приложение C# которое с этой базой работает. на форме установлен datagridview. проблема такая. после...

В dataGridView не отображается таблица из БД MS SQL Server 2012
Ребята, помогите, пожалуйста) Проблема в том, что в dataGridView1 должна отображаться таблица Сотрудники, но сама таблица пустая. Не могу...

13
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
10.02.2019, 18:52  [ТС]
скрин таблы..
Миниатюры
Не отображается таблица  
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
10.02.2019, 18:53  [ТС]
count уже поменял на reader.GetInt32(0),
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
11.02.2019, 17:33
BlacKCheT,

C#
1
2
3
4
DBUtil_books.ReadBooks();
var test = Data_books.GetSomeTypeItems_books();
MessageBox.Show(test.Count().ToString());
dataGridView1.DataSource = Data_books.GetSomeTypeItems_books();
Вот так что показывает?

PS: SomeTypeClass желательно переименовать осмысленным названием, например Book
PPS: нет нужны создавать отдельный класс для хранения данных по разным сущностям: Data_users или Data_books
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
11.02.2019, 18:15  [ТС]
0 в меседжбоксе, и потом пустая табла.. С другими таблицами проблем нету
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
11.02.2019, 22:45
BlacKCheT,

Коллекция с книгами пустая. Ошибка в методе ReadBooks.
В БД поле count типа int, а Вы читаете count = reader.GetString(9)
Добавьте логгер, чтобы видеть эти исключения

Добавлено через 2 минуты
Не заметил что уже исправили count.
Удалите тогда блок try-catch и посмотрите где возникает ошибка
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
12.02.2019, 10:03  [ТС]
Индекс находится вне границ массива..

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 Data_books.AddSomeTypeItem_books(
                            new SomeTypeClass_books()
                            {
                                ID = reader_books.GetInt32(0),
                                name = reader_books.GetString(1),
                                author = reader_books.GetString(2),
                                year = reader_books.GetDateTime(3).ToString("yyyy"),
                                genre = reader_books.GetString(4),
                                stat_avialab = reader_books.GetString(5),
                                coll_val = reader_books.GetFloat(6).ToString(),
                                rent_cost = reader_books.GetFloat(7).ToString(),
                                e_variant = reader_books.GetString(8),
                                count = reader_books.GetInt32(9).ToString(),
                                img = reader_books.GetString(10)
                            }
                            );
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18268 / 14191 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
12.02.2019, 11:31
BlacKCheT, закоментируй try/catch, запусти приложение под отладчиком и посмотри в какой строке происходит исключение.

P.S. База и код плохо организованы
- Использовать text для хранения коротких текстов это перебор. varchar тип здесь лучше подходит
- Для года лучше использовать числовой тип
- Для колонки e_variant (это я так понимаю признак наличия e-book?) лучше использовать тип bit
- Неплохо бы исправить опечатку в названии колонки stat_avialab. Наверное имелось в виду availab (сокращение available)? А то сейчас это читается как "статистика авиа-лаборатории".
В коде
- Не нужно хранить все как строки. Следует использовать тип C# соответствующий типу из БД
- От класса Data_books в текущей реаализации нет пользы. Метод ReadBooks из DBUtil_books может сразу возвращать SomeTypeClass_books[]
- Почему бы не переименовать SomeTypeClass_books в просто Book? Это же одна книга и префикс SomeTypeClass неясно чем тут помогает.
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
12.02.2019, 12:26  [ТС]
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WindowsFormsApp9
{
    class Data
    {
        public static List<SomeTypeClass> SomeTypeRepository = new List<SomeTypeClass>();
 
        public static IEnumerable<SomeTypeClass> GetSomeTypeItems()
        {
            return SomeTypeRepository;
        }
 
        public static void AddSomeTypeItem(SomeTypeClass item)
        {
            SomeTypeRepository.Add(item);
        }
 
        public static SomeTypeClass GetSomeTypeItem(int id)
        {
            return SomeTypeRepository.Where(x => x.ID == id).First();
        }
    }
}
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WindowsFormsApp9
{
    class SomeTypeClass
    {
        public int ID { get; set; }
        public string surname { get; set; }
        public string name { get; set; }
        public string patronymic { get; set; }
        public string birthday { get; set; }
        public string address { get; set; }
        public string telephone { get; set; }
        public string bonus { get; set; }
        public string karma { get; set; }
        public string img { get; set; }
 
        
        public string author { get; set; }
        public int year { get; set; }
        public char genre { get; set; }
        public byte availab { get; set; }
        public float coll_val { get; set; }
        public float rent_cost { get; set; }
        public byte e_variant { get; set; }
        public int count { get; set; }
        
 
        
        public int id_client { get; set; }
        public string res_of_cont { get; set; }
        public string date_of_cont { get; set; }
    }
}
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
 
namespace WindowsFormsApp9
{
    static class DBUtil
    {
 
        private static string connStr = "server=127.0.0.1;user=root;password=;database=book_rental";
 
 
        public static void ReadCard()
        {
            using (MySqlConnection connection = new MySqlConnection(connStr))
            {
                try
                {
                    connection.Open();
                    MySqlCommand command = new MySqlCommand();
                    command.Connection = connection;
                    command.CommandText = "SELECT * FROM card";
                    MySqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Data.AddSomeTypeItem(
                            new SomeTypeClass()
                            {
                                ID = reader.GetInt32(0),
                                id_client = reader.GetInt32(1),
                                res_of_cont = reader.GetString(2),
                                date_of_cont = reader.GetDateTime(3).ToString("yyyy.MM.dd"),
                            }
                            );
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    // error to log output
                }
            }
        }
 
 
 
        public static void ReadBooks()
        {
            using (MySqlConnection connection = new MySqlConnection(connStr))
            {
 
                connection.Open();
                MySqlCommand command = new MySqlCommand();
                command.Connection = connection;
                command.CommandText = "SELECT * FROM books";
                MySqlDataReader reader_books = command.ExecuteReader();
                while (reader_books.Read())
                {
                    Data.AddSomeTypeItem(
                        new SomeTypeClass()
                        {
                            ID = reader_books.GetInt32(0),
                            name = reader_books.GetString(1),
                            author = reader_books.GetString(2),
                            year = reader_books.GetInt32(3),
                            genre = reader_books.GetChar(4),
                            availab = reader_books.GetByte(5),
                            coll_val = reader_books.GetFloat(6),
                            rent_cost = reader_books.GetFloat(7),
                            e_variant = reader_books.GetByte(8),
                            count = reader_books.GetInt32(9),
                            img = reader_books.GetString(10)
                        }
                        );
                }
                reader_books.Close();
            }
 
        }
 
 
 
        public static void ReadClients()
        {
            using (MySqlConnection connection = new MySqlConnection(connStr))
            {
                try
                {
                    connection.Open();
                    MySqlCommand command = new MySqlCommand();
                    command.Connection = connection;
                    command.CommandText = "SELECT * FROM clients";
                    MySqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Data.AddSomeTypeItem(
                            new SomeTypeClass()
                            {
                                ID = reader.GetInt32(0),
                                surname = reader.GetString(1),
                                name = reader.GetString(2),
                                patronymic = reader.GetString(3),
                                birthday = reader.GetDateTime(4).ToString("yyyy.MM.dd"),
                                address = reader.GetString(5),
                                telephone = reader.GetString(6),
                                bonus = reader.GetFloat(7).ToString(),
                                karma = reader.GetString(8),
                                img = reader.GetString(9)
                            }
                            );
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    // error to log output
                }
            }
        }
    }
}
Добавлено через 42 секунды
SomeTypeClass не один должен быть? а 3 разных верно?
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
12.02.2019, 12:29
BlacKCheT,

для сущности Книга класс Book с свойствами, присущими книге
для сущности Клиент класс Client с свойствами, присущими клиенту

Поставьте точку останова на строке, где возникает IndexOutOfRangeException и в момент остановки посмотрите Представление результатов переменной reader.
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
12.02.2019, 13:38  [ТС]
Переделал.. В String надо все переводить? Как и в других.. Или все переделать в типы как из бд?

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WindowsFormsApp9
{
    class Data
    {
        public static List<Clients> ClientsRepository = new List<Clients>();
 
        public static IEnumerable<Clients> GetClients()
        {
            return ClientsRepository;
        }
 
        public static void AddClients(Clients item)
        {
            ClientsRepository.Add(item);
        }
 
        public static Clients GetClients(int id)
        {
            return ClientsRepository.Where(x => x.ID == id).First();
        }
 
 
 
 
        public static List<Books> BooksRepository = new List<Books>();
 
        public static IEnumerable<Books> GetBooks()
        {
            return BooksRepository;
        }
 
        public static void AddBooks(Books item)
        {
            BooksRepository.Add(item);
        }
 
        public static Books GetBooks(int id)
        {
            return BooksRepository.Where(x => x.ID == id).First();
        }
 
 
 
 
 
        public static List<Card> CardRepository = new List<Card>();
 
        public static IEnumerable<Card> GetCard()
        {
            return CardRepository;
        }
 
        public static void AddCard(Card item)
        {
            CardRepository.Add(item);
        }
 
        public static Card GetCard(int id)
        {
            return CardRepository.Where(x => x.ID == id).First();
        }
 
    }
}
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WindowsFormsApp9
{
    class Clients
    {
        public int ID { get; set; }
        public string surname { get; set; }
        public string name { get; set; }
        public string patronymic { get; set; }
        public string birthday { get; set; }
        public string address { get; set; }
        public string telephone { get; set; }
        public string bonus { get; set; }
        public string karma { get; set; }
        public string img { get; set; }
    }
 
    
    class Books
    {
        public int ID { get; set; }
        public string name { get; set; }
        public string author { get; set; }
        public int year { get; set; }
        public char genre { get; set; }
        public byte availab { get; set; }
        public float coll_val { get; set; }
        public float rent_cost { get; set; }
        public byte e_variant { get; set; }
        public int count { get; set; }
        public string img { get; set; }
 
    }
 
 
    class Card
    {
        public int ID { get; set; }
        public int id_client { get; set; }
        public string res_of_cont { get; set; }
        public string date_of_cont { get; set; }
    }
    
}
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
 
namespace WindowsFormsApp9
{
    static class DBUtil
    {
 
        private static string connStr = "server=127.0.0.1;user=root;password=;database=book_rental";
 
 
        public static void ReadCard()
        {
            using (MySqlConnection connection = new MySqlConnection(connStr))
            {
                try
                {
                    connection.Open();
                    MySqlCommand command = new MySqlCommand();
                    command.Connection = connection;
                    //id,id_client,res_of_cont,date_of_cont
                    command.CommandText = "SELECT * FROM card";
                    MySqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Data.AddCard(
                            new Card()
                            {
                                ID = reader.GetInt32(0),
                                id_client = reader.GetInt32(1),
                                res_of_cont = reader.GetString(2),
                                date_of_cont = reader.GetDateTime(3).ToString("yyyy.MM.dd"),
                            }
                            );
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    // error to log output
                }
            }
        }
 
 
 
        public static void ReadBooks()
        {
            using (MySqlConnection connection = new MySqlConnection(connStr))
            {
 
                connection.Open();
                MySqlCommand command = new MySqlCommand();
                command.Connection = connection;
                //id,name,author,year,genre,availab,coll_val,rent_cost,e_variant,count,img
                command.CommandText = "SELECT * FROM books";
                MySqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Data.AddBooks(
                        new Books()
                        {
                            ID = reader.GetInt32(0),
                            name = reader.GetString(1),
                            author = reader.GetString(2),
                            year = reader.GetInt32(3),
                            genre = reader.GetChar(4),
                            availab = reader.GetByte(5),
                            coll_val = reader.GetFloat(6),
                            rent_cost = reader.GetFloat(7),
                            e_variant = reader.GetByte(8),
                            count = reader.GetInt32(9),
                            img = reader.GetString(10)
                        }
                        );
                }
                reader.Close();
            }
 
        }
 
 
 
        public static void ReadClients()
        {
            using (MySqlConnection connection = new MySqlConnection(connStr))
            {
                try
                {
                    connection.Open();
                    MySqlCommand command = new MySqlCommand();
                    command.Connection = connection;
                    command.CommandText = "SELECT id,surname,name,patronymic,birthday,address,telephone,bonus,karma,img FROM clients";
                    MySqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Data.AddClients(
                            new Clients()
                            {
                                ID = reader.GetInt32(0),
                                surname = reader.GetString(1),
                                name = reader.GetString(2),
                                patronymic = reader.GetString(3),
                                birthday = reader.GetDateTime(4).ToString("yyyy.MM.dd"),
                                address = reader.GetString(5),
                                telephone = reader.GetString(6),
                                bonus = reader.GetFloat(7).ToString(),
                                karma = reader.GetString(8),
                                img = reader.GetString(9)
                            }
                            );
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    // error to log output
                }
            }
        }
    }
}
Добавлено через 24 минуты
System.InvalidCastException: "Заданное приведение является недопустимым." поставил точку остановы, при шаге сразу выделяется весь код, который скинул..

Представление результатов переменной reader. - Это должно быть справа в стеке вызовов верно?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18268 / 14191 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
12.02.2019, 16:26
Цитата Сообщение от BlacKCheT Посмотреть сообщение
поставил точку остановы, при шаге сразу выделяется весь код, который скинул..
Прямо все три файла сразу?

Цитата Сообщение от BlacKCheT Посмотреть сообщение
В String надо все переводить? Как и в других.. Или все переделать в типы как из бд?
В string переводить не надо. Для чисел нужно использовать числовые типы, для дат даты, для строк строки. Это верно и для БД и для C#.

Цитата Сообщение от BlacKCheT Посмотреть сообщение
System.InvalidCastException: "Заданное приведение является недопустимым."
Предполагаю что исключение возникает при вызове методов reader.GetSmth(). Чтобы установить точное место нужно переписать код без использования инициазиатора объектов (что неудобно) или путем проверки по очереди в окне Immediate. Клопируем один вызов reader.GetSmth(), вставляем в окно Immediate и смотрим результат. Ищем тот вызов который дает исключение. Соответственно поймем для какой колонки это происходит.

Добавлено через 2 часа 25 минут
Вот еще таблица соответствия типов MySql и C#
Кликните здесь для просмотра всего текста
MySQL data types C#
bool, boolean, bit(1) bool
tinyint sbyte
tinyint unsigned byte
smallint, year short
int, integer, smallint unsigned, mediumint int
bigint, int unsigned, integer unsigned, bit long
float float
double, real double
decimal, numeric, dec, fixed, bigint unsigned, float unsigned, double unsigned, serial decimal
date, timestamp, datetime DateTime
datetimeoffset DateTimeOffset
time TimeSpan
char, varchar, tinytext, text, mediumtext, longtext, set, enum, nchar, national char, nvarchar, national varchar, character varying string
binary, varbinary, tinyblob, blob, mediumblob, longblob, char byte byte[]
geometry System.Data.Spatial.DbGeometry

Источник
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
12.02.2019, 18:24  [ТС]
Вот так получилось.. итоговый варик..

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WindowsFormsApp9
{
    class Data
    {
        public static List<Clients> ClientsRepository = new List<Clients>();
 
        public static IEnumerable<Clients> GetClients()
        {
            return ClientsRepository;
        }
 
        public static void AddClients(Clients item)
        {
            ClientsRepository.Add(item);
        }
 
        public static Clients GetClients(int id)
        {
            return ClientsRepository.Where(x => x.ID == id).First();
        }
 
 
 
 
        public static List<Books> BooksRepository = new List<Books>();
 
        public static IEnumerable<Books> GetBooks()
        {
            return BooksRepository;
        }
 
        public static void AddBooks(Books item)
        {
            BooksRepository.Add(item);
        }
 
        public static Books GetBooks(int id)
        {
            return BooksRepository.Where(x => x.ID == id).First();
        }
 
 
 
 
 
        public static List<Card> CardRepository = new List<Card>();
 
        public static IEnumerable<Card> GetCard()
        {
            return CardRepository;
        }
 
        public static void AddCard(Card item)
        {
            CardRepository.Add(item);
        }
 
        public static Card GetCard(int id)
        {
            return CardRepository.Where(x => x.ID == id).First();
        }
 
    }
}
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WindowsFormsApp9
{
    class Clients
    {
        public int ID { get; set; }
        public string surname { get; set; }
        public string name { get; set; }
        public string patronymic { get; set; }
        public string birthday { get; set; }
        public string address { get; set; }
        public string telephone { get; set; }
        public string bonus { get; set; }
        public string karma { get; set; }
        public string img { get; set; }
    }
 
    
    class Books
    {
        public int ID { get; set; }
        public string name { get; set; }
        public string author { get; set; }
        public string year { get; set; }
        public string genre { get; set; }
        public string availab { get; set; }
        public string coll_val { get; set; }
        public string rent_cost { get; set; }
        public string e_variant { get; set; }
        public string count { get; set; }
        public string img { get; set; }
 
    }
 
 
    class Card
    {
        public int ID { get; set; }
        public int id_client { get; set; }
        public string res_of_cont { get; set; }
        public string date_of_cont { get; set; }
    }
    
}
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
 
namespace WindowsFormsApp9
{
    static class DBUtil
    {
 
        private static string connStr = "server=127.0.0.1;user=root;password=;database=book_rental";
 
 
        public static void ReadCard()
        {
            using (MySqlConnection connection = new MySqlConnection(connStr))
            {
                try
                {
                    connection.Open();
                    MySqlCommand command = new MySqlCommand();
                    command.Connection = connection;
                    command.CommandText = "SELECT * FROM card";
                    MySqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Data.AddCard(
                            new Card()
                            {
                                ID = reader.GetInt32(0),
                                id_client = reader.GetInt32(1),
                                res_of_cont = reader.GetString(2),
                                date_of_cont = reader.GetDateTime(3).ToString("yyyy.MM.dd"),
                            }
                            );
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    // error to log output
                }
            }
        }
 
 
 
        public static void ReadBooks()
        {
            using (MySqlConnection connection = new MySqlConnection(connStr))
            {
                try
                {
                    connection.Open();
                    MySqlCommand command = new MySqlCommand();
                    command.Connection = connection;
                    command.CommandText = "SELECT * FROM books";
                    MySqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Data.AddBooks(
                            new Books()
                            {
                                ID = reader.GetInt32(0),
                                name = reader.GetString(1),
                                author = reader.GetString(2),
                                year = reader.GetInt32(3).ToString("yyyy"),
                                genre = reader.GetString(4),
                                availab = reader.GetInt32(5).ToString(),
                                coll_val = reader.GetFloat(6).ToString(),
                                rent_cost = reader.GetFloat(7).ToString(),
                                e_variant = reader.GetInt32(8).ToString(),
                                count = reader.GetInt32(9).ToString(),
                                img = reader.GetString(10)
                            }
                            );
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    // error to log output
                }
 
            }
        }
 
 
 
        public static void ReadClients()
        {
            using (MySqlConnection connection = new MySqlConnection(connStr))
            {
                try
                {
                    connection.Open();
                    MySqlCommand command = new MySqlCommand();
                    command.Connection = connection;
                    command.CommandText = "SELECT * FROM clients";
                    MySqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Data.AddClients(
                            new Clients()
                            {
                                ID = reader.GetInt32(0),
                                surname = reader.GetString(1),
                                name = reader.GetString(2),
                                patronymic = reader.GetString(3),
                                birthday = reader.GetDateTime(4).ToString("yyyy.MM.dd"),
                                address = reader.GetString(5),
                                telephone = reader.GetString(6),
                                bonus = reader.GetFloat(7).ToString(),
                                karma = reader.GetString(8),
                                img = reader.GetString(9)
                            }
                            );
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    // error to log output
                }
            }
        }
    }
}
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
13.02.2019, 15:27  [ТС]
Народ, подскажите как организовать добавление? Т.е есть вот такой костыль)), но как сделать не костыль?)

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

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
 public partial class Form4 : Form
    {
        public Form4(int id)
        {
            InitializeComponent();
            Clients Clients = Data.GetClients(id);
            textBox1.Text = Clients.surname;
            textBox2.Text = Clients.name;
            textBox3.Text = Clients.patronymic;
            textBox4.Text = Clients.birthday;
            textBox5.Text = Clients.address;
            textBox6.Text = Clients.telephone;
            textBox7.Text = Clients.bonus;
            textBox8.Text = Clients.karma;
            textBox9.Text = Clients.img;
        }
 
 
        private void button1_Click(object sender, EventArgs e)
        {
            
            if (dataGridView1.SelectedRows.Count > 0)
            {
 
                dataGridView1.BeginEdit(true);
                textBox1.Text = dataGridView1.Item(1, dataGridView1.CurrentRow.Index).Value();
                textBox2.Text = dataGridView1.Item(2, dataGridView1.CurrentRow.Index).Value();
                textBox3.Text = dataGridView1.Item(3, dataGridView1.CurrentRow.Index).Value();
                textBox4.Text = dataGridView1.Item(4, dataGridView1.CurrentRow.Index).Value();
                textBox5.Text = dataGridView1.Item(5, dataGridView1.CurrentRow.Index).Value();
                textBox6.Text = dataGridView1.Item(6, dataGridView1.CurrentRow.Index).Value();
                textBox7.Text = dataGridView1.Item(7, dataGridView1.CurrentRow.Index).Value();
                textBox8.Text = dataGridView1.Item(8, dataGridView1.CurrentRow.Index).Value();
                textBox9.Text = dataGridView1.Item(9, dataGridView1.CurrentRow.Index).Value();
                dataGridView1.EndEdit();
                
            }
            
            else
            {
                MessageBox.Show("Выберете строку для редактирования!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
 
            }
            
        }
    }
Добавлено через 2 минуты
И да, вот это тоже же костыль?

C#
1
2
3
4
5
6
7
8
9
10
11
       private void button1_Click(object sender, EventArgs e)
        {
            MySqlConnection coon = new MySqlConnection(f2.connStr);
            MySqlCommand cmd = new MySqlCommand();
            cmd.Connection = coon;
            cmd.CommandText = "INSERT INTO clients (surname,name,patronymic,birthday,address,telephone,bonus,karma) values ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "')";
            MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
            DataSet dataset = new DataSet();
            adapter.Fill(dataset);
            coon.Close();
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.02.2019, 15:27
Помогаю со студенческими работами здесь

Не отображается таблица
Доброго всем времени суток. У меня возникла такая проблема. Помогите, пожалуйста, разобраться. Нужно, чтобы добавлялись студенты и группы...

Не отображается таблица
Помогите пожалуйста, приложение подключается к БД и берет из нее данные в таблицу. Таблица размещена в scrollpane. Проблема в том, что...

Не отображается таблица
не отображается таблица помогите исправить ) &lt;!DOCTYPE html PUBLIC &quot; EN&quot; &quot;&gt; &lt;html xml:lang=&quot;en&quot; lang=&quot;en&quot; &gt; ...

Не отображается таблица
В mainwindows.ui есть таблицы с именами tableView_SfDEdizm (Сфера деятельности и Единицы измерения) и tableView_PokazSfD (Показатель и...

Не отображается таблица
import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru