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

Две таблицы DataGridView на одной форме

16.10.2019, 15:20. Показов 3931. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я новенький на форуме, поэтому не судите строго, если не смог найти похожую тему, хотя поискал.
Суть вопроса вот в чем. Имеется одна таблица SQL, состоящая из N-столбцов, ключевой столбец это номер массива, их два, (1 или 2) и имеется форма. На форму необходимо разместить 2 элемента DataGridView, так, чтобы DataGridView1 подтягивал те значения, в строках которых присутствует массив 1 и соответственно DataGridView2, подтягивал те строки, в которых будет указан массив 2. Не очень доходчиво наверное объяснил? Вообщем первый датагрид должен тянуть из базы те строки, в которых в 10 столбце стоит значение 1. И второй датагрид должен тянуть из базы те строки, в которых в 10 столбце стоит значение 2. Фиу, сам кое как сформулировал))). Через датасоурс заполняются оба датагрида одними и теми же данными. Пожалуйста, подскажите, с того момента, как форма загрузилась и подключилась к базе, как прописать код? Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.10.2019, 15:20
Ответы с готовыми решениями:

Две таблицы одной базы на одной форме
Здрасти! Есть БД access связанная с делфей. В этой БД есть несколько таблиц. Как мне в одном DBGrid отобразить одну таблицу, а во втором,...

В DataGridView выводится две таблицы БД вместо одной
К одной форме подключаю две таблицы. один столбец из одной таблицы вывожу в Combobox, а вторую таблицу вывожу в DataGridView. всё это...

FIREBIRD, две базы, две таблицы, скопировать данные из одной в другую
В наличии имеются две базы данных Firebird. Часть информации из одной нужно скопировать в другую. Так как я начинающий, поломал себе мозг....

16
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
16.10.2019, 15:38
Kote_Gaeshi,

Указывайте в запросе значение этого 10-го столбца:

SQL
1
SELECT * FROM DATABASE.table WHERE column10 = 1
SQL
1
SELECT * FROM DATABASE.table WHERE column10 = 2
DATABASE - название базы данных
table - название таблицы
column10 - название столбца
1
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 49
16.10.2019, 15:42  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void Form_Load
{
     tb1();
     tb2();
}
 
public void tb1()
{
     con.Open();
     SqlCommand cmd = con.CreateCommand();
     cmd.CommandType = CommandType.Text;
     cmd.CommandText = "SELECT * FROM Table";
     SqlDataReader reader = cmd.ExecuteReader;
     cmd.ExecuteNonQuery();
     
foreach (string[] s in data)
dataGridView1.Rows.Add(s);
В таком духе начал писать, но не соображу что не так делаю, поправьте меня пожалуйста))
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
16.10.2019, 15:56
C#
1
2
3
4
5
6
7
8
9
string ConnectionString = "здесь ваша строка подключения";
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
    SqlCommand comm = new SqlCommand("SELECT * FROM DATABASE.table WHERE column10 = 1", conn);
    SqlDataAdapter adap = new SqlDataAdapter(comm);
    DataTable dt = new DataTable();
    adap.Fill(dt);
    dataGridView1.DataSource = dt;
}
1
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 49
17.10.2019, 09:14  [ТС]
Спасибо большое! Только, все равно, с этим кодом датагрид не тянет таблицу из базы.
Вот код, который я прописал, для 1 датагрида:
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
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.SqlClient;
 
namespace Oбозреватель
{
    public partial class ViewAll : Form
    {
        
        public ViewAll()
        {
            InitializeComponent();
        }
 
        private void ViewAll_Load(object sender, EventArgs e)
        {
                     
            string ConnectionString = @"Data Source=ADMIN\SQLEXPRESS;Initial Catalog=BASE;Integrated Security=True";
            using (SqlConnection con = new SqlConnection(ConnectionString))
            { 
                SqlCommand cmd = new SqlCommand ("SELECT * FROM BASE.Registration WHERE Prom = 1 Массив", con);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                dataGridView1.DataSource = dt;
 
            }
           
          
        }
И студия не ругается, ошибки нет, но почему то не тянет данные Где я что то упустил?
0
.NET
133 / 91 / 44
Регистрация: 17.08.2015
Сообщений: 296
17.10.2019, 09:23
Цитата Сообщение от Kote_Gaeshi Посмотреть сообщение
WHERE Prom = '1 Массив'
Возможно надо так? Добавить кавычки '1 Массив'
1
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
17.10.2019, 09:25
Лучше все-таки использовать параметрзированные запросы
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 49
17.10.2019, 09:39  [ТС]
Это не помогло(
0
.NET
133 / 91 / 44
Регистрация: 17.08.2015
Сообщений: 296
17.10.2019, 09:58
Цитата Сообщение от Kote_Gaeshi Посмотреть сообщение
Это не помогло(
Идентичный код ввёл у себя, всё работает..
При запуске в datagrid у вас столбцы хоть именуются? Или вообще пусто?

Добавлено через 2 минуты
Попробуйте без WHERE

T-SQL
1
SELECT * FROM Registration
Добавлено через 4 минуты
Цитата Сообщение от Kote_Gaeshi Посмотреть сообщение
WHERE Prom = 1 Массив
И вообще, данные в таблице у вас так выглядят? "1 Массив?"
Или же Название столбца "Массив"?
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 49
17.10.2019, 10:02  [ТС]
Столбцы проименованы аналогично с базой. Нет, и без WHERE не хочет...

Добавлено через 1 минуту
Название столбца Prom, а значения 1 Массив, 2 Массив
0
.NET
133 / 91 / 44
Регистрация: 17.08.2015
Сообщений: 296
17.10.2019, 10:03
Цитата Сообщение от Kote_Gaeshi Посмотреть сообщение
Столбцы проименованы аналогично с базой. Нет, и без WHERE не хочет
Даже не знаю в чём проблема, база не пустая?
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 49
17.10.2019, 10:11  [ТС]
База не пустая
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
17.10.2019, 10:25
Цитата Сообщение от Kote_Gaeshi Посмотреть сообщение
Где я что то упустил?
не открыли подключение

C#
1
2
3
4
5
using (SqlConnection con = new SqlConnection(ConnectionString))
            { 
                con.Open();
                SqlCommand cmd = new SqlCommand ("SELECT * FROM BASE.Registration WHERE Prom = '1 Массив'", con);
                ...
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 49
17.10.2019, 11:10  [ТС]
не помогло
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
17.10.2019, 11:12
Kote_Gaeshi, может стоит вам проект выложить ?
0
1 / 1 / 0
Регистрация: 16.10.2019
Сообщений: 49
17.10.2019, 13:22  [ТС]
кажется я разобрался. Допилю, выложу

Добавлено через 1 час 16 минут
Все заработало, оба датагрида на одной форме, каждый из которых берет из базы то, что ему надо брать
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
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.SqlClient;
 
namespace Oбозреватель
{
    public partial class ViewAll : Form
    {
        public ViewAll()
        {
            InitializeComponent();
        }
 
        private void ViewAll_Load(object sender, EventArgs e)
        {
           dataGridView1.DataSource = GetRegistrationList1();
           dataGridView2.DataSource = GetRegistrationList2();
        }
 
        private DataTable GetRegistrationList1()
        {
            DataTable dtRegistration = new DataTable();
            string ConnectionString = @"Data Source=ADMIN\SQLEXPRESS;Initial Catalog=BASE;Integrated Security=True";
            using (SqlConnection con = new SqlConnection(ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand("SELECT * FROM Registration WHERE Prom = '1 Массив'", con))
                {
                    con.Open();
                    SqlDataReader reader = cmd.ExecuteReader();
                    dtRegistration.Load(reader);
 
                }
 
                return dtRegistration;
 
            }
        }
        private DataTable GetRegistrationList2()
        {
            DataTable dtRegistration = new DataTable();
            string ConnectionString = @"Data Source=ADMIN\SQLEXPRESS;Initial Catalog=BASE;Integrated Security=True";
            using (SqlConnection con = new SqlConnection(ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand("SELECT * FROM Registration WHERE Prom = '2 Массив'", con))
                {
                    con.Open();
                    SqlDataReader reader = cmd.ExecuteReader();
                    dtRegistration.Load(reader);
 
                }
                return dtRegistration;
 
 
            }
        }
    }
}
Добавлено через 1 минуту
Вам большое спасибо, без этих кавычек, он действительно не понимает...))
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
17.10.2019, 13:44
Kote_Gaeshi,

На первых порах старайтесь отлаживать запрос в SQL клиенте, так сразу можно понять что проблема не в синтаксисе запроса и приниматься за отладку программы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2019, 13:44
Помогаю со студенческими работами здесь

Как показать в одной datagridview "задания" из одной таблицы и в каждой строке "сумма опл" из другой таблицы
Здравствуйте. у меня вопрос точно, как в заголовке. Как показать в одной datagridview "задания" из одной таблицы A, и в каждой...

Заменить значение ключа из одной таблицы именем из другой таблицы в форме
Здравствуйте! Есть две таблицы. Одна таблица называется "Посуда" с полями "Ключ посуды" и "Наименование посуды". Эта...

два сабмита в одной форме - две ссылки
Ребят привет , задача такая - не могу понять : Есть форма в ней две кнопки сабмита с разными именами. Как сделать чтоб одна...

Как связать 2 DataGridView на одной форме?
Добрый день,форумчане!) Подскажите пожалуйста как связать два datagridview в одной форме.Смысл такой в одном datagrid строится матрица и...

Объединить две таблицы DataGridView в одну
есть две разные таблицы DataGridView с разными данными, но с одинаковым кол-во строк. возможно ли эти две таблицы соединить в третью...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru