Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 7

Как исправить ошибку?

11.12.2019, 00:07. Показов 820. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
 
namespace WindowsFormsApp1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
          
            Get_Table("Маршрут", 1); // заполняем таблицу "Маршрут"
            Get_Table("Билет", 2);   // заполняем таблицу "Билет"
            Get_Table("Водитель", 3);
            Get_Table("Автобус", 4);
            Get_Table("Диспетчер", 5);
            textBox1.Text = "0";
            comboBox1.SelectedIndex = 0;
            comboBox2.SelectedIndex = 0;
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.OK;
        }
 
        private void Get_Table(string table_name, int num_dG)
        {
            Form1 f1 = new Form1();
            string CommandText = "SELECT * FROM ";
            CommandText += table_name;
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(CommandText, f1.ConnectionString);
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds, table_name);
            if (num_dG == 1) dataGridView1.DataSource = ds.Tables[table_name].DefaultView;
            if (num_dG == 2) dataGridView2.DataSource = ds.Tables[table_name].DefaultView;
            if (num_dG == 3) dataGridView3.DataSource = ds.Tables[table_name].DefaultView;
            if (num_dG == 4) dataGridView4.DataSource = ds.Tables[table_name].DefaultView;
            if (num_dG == 5) dataGridView5.DataSource = ds.Tables[table_name].DefaultView;
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.No;
        }
 
  
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int row;
            // Берем данные из ячеек таблицы "Маршрут"
            row = dataGridView1.CurrentCell.RowIndex;
            label2.Text = "Маршрут - " + "№" + Convert.ToString(dataGridView1[1, row].Value) +
                "/" + Convert.ToString(dataGridView1[2, row].Value) +
                "/" + Convert.ToString(dataGridView1[3, row].Value) +
                "/" + Convert.ToString(dataGridView1[4, row].Value) +
                "/" + Convert.ToString(dataGridView1[7, row].Value) +
               " - " + Convert.ToString(dataGridView1[8, row].Value);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            // Фильтр к таблице "Маршрут"
            string CommandText = "SELECT * FROM [Маршрут]";
            // формируем переменную CommandText
            if (textBox2.Text == "")
                CommandText = "SELECT * FROM [Маршрут]";
            else
            if (comboBox1.SelectedIndex == 0) // № перевозки
                CommandText = "SELECT * FROM [Маршрут] WHERE [Номер маршрута] = '" + textBox2.Text + "'"; // работает
            else
            if (comboBox1.SelectedIndex == 1) //
                CommandText = "SELECT * FROM [Маршрут] WHERE [Пункт назначения] LIKE '" + textBox2.Text + "%'";
            else
            if (comboBox1.SelectedIndex == 2) // Район
                CommandText = "SELECT * FROM [Маршрут] WHERE Район LIKE '" + textBox2.Text + "%'";
            else
            if (comboBox1.SelectedIndex == 3) // Область
                CommandText = "SELECT * FROM [Маршрут] WHERE Область LIKE '" + textBox2.Text + "%'";
 
            Form1 f = new Form1();
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(CommandText, f.ConnectionString);
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds, "[Маршрут]");
            dataGridView1.DataSource = ds.Tables[0].DefaultView;
        }
 
        private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int row;
            // так же берем данные из таблицы "Билет"
            row = dataGridView2.CurrentCell.RowIndex;
            label3.Text = "Билет: место №" + Convert.ToString(dataGridView2[1, row].Value) +
               " / " + Convert.ToString(dataGridView2[2, row].Value) +
               " / " + Convert.ToString(dataGridView2[3, row].Value) +
               " / " + Convert.ToString(dataGridView2[4, row].Value) +
               " / " + Convert.ToString(dataGridView2[5, row].Value) +
               " / " + Convert.ToString(dataGridView2[6, row].Value);
        }
 
        private void dataGridView3_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int row;
            // Данные о водителе
            row = dataGridView3.CurrentCell.RowIndex;
            label4.Text = "Водитель: " + Convert.ToString(dataGridView3[1, row].Value);
        }
 
        private void dataGridView4_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int row;
            // Информация об автобусе
            row = dataGridView4.CurrentCell.RowIndex;
            label5.Text = "Автобус: №" + Convert.ToString(dataGridView4[1, row].Value) +
               " / " + Convert.ToString(dataGridView4[2, row].Value) +
               " / " + Convert.ToString(dataGridView4[3, row].Value) +
               " / " + Convert.ToString(dataGridView4[4, row].Value);
        }
 
        private void dataGridView5_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int row;
            // Информация о диспетчере
            row = dataGridView5.CurrentCell.RowIndex;
            label6.Text = "Диспетчер: " + Convert.ToString(dataGridView5[1, row].Value);
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            // Фильтр к таблице "Билет"
            string CommandText = "SELECT * FROM [Билет]";
            // формируем переменную CommandText
            if (textBox3.Text == "")
                CommandText = "SELECT * FROM [Билет]";
            else
            if (comboBox2.SelectedIndex == 0) // № перевозки
                CommandText = "SELECT * FROM [Билет] WHERE [Место] = " + textBox3.Text;
            else
            if (comboBox2.SelectedIndex == 1) //
                CommandText = "SELECT * FROM [Билет] WHERE [П_І_Б пассажира] LIKE '" + textBox3.Text + "%'";
            Form1 f = new Form1();
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(CommandText, f.ConnectionString);
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds, "[Маршрут]");
            dataGridView2.DataSource = ds.Tables[0].DefaultView;
        }
    }
}
Как фиксить ошибку?
Миниатюры
Как исправить ошибку?  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2019, 00:07
Ответы с готовыми решениями:

Как исправить ошибку KeyNotFoundException
Добрый день! Столкнулся с проблемой "KeyNotFoundException" при выводе результата sql запроса (большой запрос с несколькими join). При...

Кто скажет как исправить ошибку?
System.IO.FileLoadException: 'Could not load file or assembly 'Tekla.Structures.Model, Version=2019.0.0.0, Culture=neutral,...

Как исправить ошибку с yield return?
мне нужно проходить по кругу коллекцию, но такой код почему-то не работает. в чем ошибка и как ее исправить? static IEnumerator...

2
0 / 0 / 0
Регистрация: 29.03.2019
Сообщений: 7
11.12.2019, 00:10  [ТС]
Дополнение
Для того, чтобы иметь доступ к методам и свойствам которые используются при работе с базами данных, в файле «Form2.cs» подключаем пространство имен (см. п. 4.2):

using System.Data.OleDb;
Для отображения данных в элементах управления типа DataGridView создаем дополнительный метод Get_Table(), который получает входящими два параметра. Параметр table_name задает название таблицы в базе данных. Параметр num_dG задает номер элемента управления типа DataGridView – от 1 до 5. Например, если num_dG=2, то это значит, что отображаются данные в элементе управления dataGridView2.

Листинг метода Get_Table() следующий:

private void Get_Table(string table_name, int num_dG)
{
Form1 f1 = new Form1();
string CommandText = "SELECT * FROM ";
CommandText += table_name;
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(CommandText, f1.ConnectionString);
DataSet ds = new DataSet();
dataAdapter.Fill(ds, table_name);
if (num_dG == 1) dataGridView1.DataSource = ds.Tables[table_name].DefaultView;
if (num_dG == 2) dataGridView2.DataSource = ds.Tables[table_name].DefaultView;
if (num_dG == 3) dataGridView3.DataSource = ds.Tables[table_name].DefaultView;
if (num_dG == 4) dataGridView4.DataSource = ds.Tables[table_name].DefaultView;
if (num_dG == 5) dataGridView5.DataSource = ds.Tables[table_name].DefaultView;
}
Следующим шагом программируем событие Load, которое вызовется при загрузке формы Form2. Этому событию буде соответствовать метод Form2_Load().

Листинг метода Form2_Load() следующий:

private void Form2_Load(object sender, EventArgs e)
{
Get_Table("Маршрут", 1); // заполняем таблицу "Маршрут"
Get_Table("Билет", 2); // заполняем таблицу "Билет"
Get_Table("Водитель", 3);
Get_Table("Автобус", 4);
Get_Table("Диспетчер", 5);
textBox1.Text = "0";
comboBox1.SelectedIndex = 0;
comboBox2.SelectedIndex = 0;
}
В методе Form2_Load() поочередно вызовется метод Get_Table(), что заполняет все 5 элементов управления типа DataGridView.
Ничего не помогает, все равно ошибка эта
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
11.12.2019, 08:20
faer0n,
1)Пользуйтесь тегами кода для нормального отображения.
2)По скрину видно что свойство закрыто оно имеет модификатор private
3)И из Form2 вызывать Form1 f1 = new Form1(); Так делать нельзя. Вы из дочерней формы вызываете новый экземпляр родительской формы. Вынесите все методы по Sql в отдельный статический класс и работайте с ним из разных окон.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2019, 08:20
Помогаю со студенческими работами здесь

Цикл. Как исправить ошибку ArgumentOutOfRangeException?
Здраствуйте, хочу спросить, как можно, исправить ошибку: Сколько Элементов? 3 #0NAME: фы фы фы #0Табельный номер: 3322 ...

как исправить ошибку при отключении клиента от сервера
Доброго времени суток гос-да программисты. Есть примеры кода клиент-сервер. Всё работает, но при отключении клиента ("Стоп")...

Visual Studio and Microsoft SQL как исправить ошибку?
public int Id { get => id; set => id = value; } public string Login { get => login; set => login = value; } public string Password...

как исправить эту ошибку (не удается получить схему для этого запроса)
SELECT Товары., Товары., Товары.количество, SUM(Nz(.количество)) AS Расход, Товары.количество - Расход...

Как исправить ошибку "Cannot bind to the property or column"
Cannot bind to the property or column ФИО пациента: on the DataSource. Parameter name: dataMember Тема должна иметь осмысленное...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru