С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 29.06.2019
Сообщений: 3

Вывод базы данных access в mfc ListView

02.12.2019, 01:39. Показов 2084. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно вывести в каждую из колонок данные из каждой колонки бд, но получается только вывести в первую(нулевую) колонку, при попытке вывести в другие колонки, выходит ошибка "недопустимое имя поля или индекс поля"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
DWORD style = GetWindowLong(this->GetListCtrl().m_hWnd,GWL_STYLE);
    SetWindowLong(this->GetListCtrl().m_hWnd, GWL_STYLE,(style & ~LVS_TYPEMASK) | LVS_REPORT);
    this->GetListCtrl().InsertColumn(0, L"№", LVCFMT_LEFT, 35, 0);
    this->GetListCtrl().InsertColumn(1, L"Имя", LVCFMT_LEFT, 300, 1);
    this->GetListCtrl().InsertColumn(2, L"Адрес", LVCFMT_LEFT, 200, 0);
    this->GetListCtrl().InsertColumn(3, L"Комментарий", LVCFMT_LEFT, 500, 0);
    CRecordset* id_recset;
    CRecordset* name_recset;
    CDatabase db;
    CString m_szDSN("База данных MS Access");
    CString m_szConnectString(L"ODBC;DRIVER=Microsoft Access Driver (*.mdb); DBQ=.\\Data.mdb");
    if (!db.Open(m_szDSN, FALSE, FALSE, m_szConnectString))
        AfxMessageBox(L"oshibka", MB_ICONSTOP);
    else
    {
 
        id_recset = new CRecordset(&db);
        id_recset->Open(AFX_DB_USE_DEFAULT_TYPE, L"SELECT ID FROM Table1", CRecordset::readOnly);
        CString szBuffer;
        for (int i = 0; (i < id_recset->GetRecordCount()) ; i++)
        {
 
            id_recset->GetFieldValue((short)0, szBuffer);
            this->GetListCtrl().InsertItem(i, szBuffer);
            id_recset->MoveNext();
        }
    
        id_recset->Close();
 
        name_recset = new CRecordset(&db);
        name_recset->Open(AFX_DB_USE_DEFAULT_TYPE, L"SELECT NAME_OUR FROM Table1", CRecordset::readOnly);
        
        for (int i = 0; (i < name_recset->GetRecordCount()) ; i++)
        {
            
            name_recset->GetFieldValue((short)1, szBuffer);
            this->GetListCtrl().InsertItem(i, szBuffer);
            name_recset->MoveNext();
        }
        name_recset->Close();
 
 
    }
    db.Close();
    id_recset = NULL;
    delete id_recset;
    name_recset = NULL;
    delete name_recset;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2019, 01:39
Ответы с готовыми решениями:

Отображение данных из Базы Access в ListView
Нужна помощь, не могу отобразить данные с базы... Dim sSQL As String = &quot;SELECT * FROM &quot; &amp; sTable rs.Open(sSQL, cn, 3,...

MS Access - выборка данных из базы в listview
Добрый день Задача стоит следующая: форма поиска. Вводится фамилия или ее часть, кликается &quot;найти&quot;. В таблицу людей делается...

Вывод из базы данных в ListView через SimpleCursorAdapter
Доброе время суток. Пишу программу под Андроид в среде Android Studio и возникла проблема с выводом данных в listview через...

3
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
02.12.2019, 09:42
Цитата Сообщение от litegame Посмотреть сообщение
Нужно вывести в каждую из колонок данные из каждой колонки бд, но получается только вывести в первую(нулевую) колонку, при попытке вывести в другие колонки, выходит ошибка "недопустимое имя поля или индекс поля"
Так ты ж вроде только одну колонку и запрашиваешь.
Подозреваю, тебе здесь нужны не два запроса, а один - SELECT ID, NAME_OUR FROM Table1

Добавлено через 6 минут
Ну или сделать во втором цикле
Цитата Сообщение от litegame Посмотреть сообщение
name_recset->Open(AFX_DB_USE_DEFAULT_TYPE, L"SELECT NAME_OUR FROM Table1", CRecordset::readOnly);
for (int i = 0; (i < name_recset->GetRecordCount()) ; i++)
        {
name_recset->GetFieldValue((short)1, szBuffer);
name_recset->GetFieldValue((short)0, szBuffer)

Не понимаю, просто, что ты пытаешься сделать
0
0 / 0 / 0
Регистрация: 29.06.2019
Сообщений: 3
03.12.2019, 04:09  [ТС]
есть Listview, в нем я создал 4 колонки. есть база данных так же с четырьмя колонками, я хочу вывести содержимое базы данных в listview
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
03.12.2019, 09:25
Цитата Сообщение от litegame Посмотреть сообщение
есть Listview, в нем я создал 4 колонки. есть база данных так же с четырьмя колонками, я хочу вывести содержимое базы данных в listview
Так и запрашивай это содержимое одним запросом, а не четырьмя
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2019, 09:25
Помогаю со студенческими работами здесь

Вывод информации из базы данных Access
Доброго времени суток. В общем, столкнулся с проблемой: подключаю базу .accdb через OleDbConnection, чтобы я мог работать с данными в...

Вывод данных из базы данных access в TextBox
На форме допустим 10 текстбоксов, в них надо вывести данные из записи таблицы базы данных, допустим со столбцами Kol_0 , Kol_1 , Kol_2...

Подключение базы данных access и вывод на сайте
Доброго времени суток. Вот вроде бы всё нормально, но появляется ошибка: &quot;Ссылка на объект не указывает на экземпляр объекта.&quot; в...

Вывод значений из базы данных MS Access в ComboBox
Здравствуйте! Имеется крошечная БД с табличкой &quot;Курс&quot;, в которой есть следующие столбцы: id, доллар (собой он как раз и подразумевает курс...

Вывод данных в DataGridView из зашифрованной базы Access через TableAdapter
Добрый день. Помогите пожалуйста советом. Подключаю запароленную базу Access (.accdb) как указано на MSDN:...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru