Форум программистов, компьютерный форум CyberForum.ru

C# и базы данных, ADO.NET

Войти
Регистрация
Восстановить пароль
 
StudentIriska
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 10
#1

Ошибка в приложении для работы с базой данных - C#

09.01.2017, 16:54. Просмотров 275. Ответов 19

Здравствуйте, уважаемые участники форума. Прошу у вас помощи. Я изучаю основы программирования самостоятельно. Данный код я скопировала из учебника, чтобы на его основе создать своё приложение. Но, к сожалению, мой visual express на этот код выдаёт мне следующую ошибку: 'Элемент "database" не существует в текущем контексте'. Как мне её исправить? Пожалуйста, помогите. Ниже приведён полный код программы.

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.Windows.Forms;
using DB.Properties;
using System.Data.OleDb;
 
namespace DB
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
        }
 
        private void closeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void aboutProgrammToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Эта программа предназначена для работы с БД. Её разработала студентка курса Программирование для начинающих, "О программе", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
 
        private void FormMain_FormClosed(object sender, FormClosedEventArgs e)
        {
            Settings.Default.Save();
        }
 
        private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = MessageBox.Show("Вы хотите закрыть программу?", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes;
        }
        public void loadDataGrid(DataGridView myDataGridView, string sqlQueryString)
        {
            OleDbCommand SQLQuery = new OleDbCommand();
            DataTable data = null;
            myDataGridView.DataSource = null;
            SQLQuery.Connection = null;
            OleDbDataAdapter dataADAPTER = null;
            datGridDBTables.Columns.Clear();
            SQLQuery.CommandText = sqlQueryString;
            SQLQuery.Connection = database;
            data = new DataTable();
            dataADAPTER = new OleDbDataAdapter(SQLQuery);
            dataADAPTER.Fill(data);
            myDataGridView.DataSource = data;
            myDataGridView.AllowUserToAddRows = false;
            myDataGridView.ReadOnly = true;
 
        }
 
        private void btnRequest_Click(object sender, EventArgs e)
        {
            loadDataGrid(datGridDBTables, tbRequest.Text);
        }
    }
}
Буду вам очень признательна за помощь. А то мне скоро работу сдавать, а я даже начать толком не могу)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2017, 16:54     Ошибка в приложении для работы с базой данных
Посмотрите здесь:

Есть ли библиотеки для работы с графикой C (СИ)
C (СИ) Программа для имитации работы часов
Класс для работы с текстовым файлом C (СИ)
Библиотека для работы с CSV файлами C (СИ)
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список C (СИ)
Не определяется функция для работы со строками C (СИ)
C (СИ) Написать программу, выполняющую действия с базой данных
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hikari
Хитрая блондиночка $)
1446 / 953 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
09.01.2017, 17:04     Ошибка в приложении для работы с базой данных #2
Цитата Сообщение от StudentIriska Посмотреть сообщение
Данный код я скопировала из учебника
А что в учебнике написано про слово "database", присутствующее в этом коде?
StudentIriska
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 10
09.01.2017, 17:06  [ТС]     Ошибка в приложении для работы с базой данных #3
В том то и дело что ничего не написано. так бы я сама потихоньку разобралась, но тут ни одной подсказки.
Usaga
1354 / 1108 / 192
Регистрация: 21.01.2016
Сообщений: 4,012
Завершенные тесты: 2
09.01.2017, 17:36     Ошибка в приложении для работы с базой данных #4
StudentIriska, вот тут есть подсказки. А если немного погуглить по фразе "ADO.NET", то можно опузыриться подсказками.
bax_tang
350 / 282 / 77
Регистрация: 23.09.2016
Сообщений: 854
Завершенные тесты: 3
09.01.2017, 20:08     Ошибка в приложении для работы с базой данных #5
Цитата Сообщение от StudentIriska Посмотреть сообщение
SQLQuery.Connection = database;
судя по вот этой строке, database - это OleDbConnection, размещённый на форме FormMain в режиме дизайнера (скорее всего, в книге об этом сообщается отдельно). Собственно, поэтому он и "не виден" в той части кода, которую Вы скопировали из книги.
StudentIriska
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 10
09.01.2017, 20:11  [ТС]     Ошибка в приложении для работы с базой данных #6
Цитата Сообщение от Usaga Посмотреть сообщение
StudentIriska, вот тут есть подсказки. А если немного погуглить по фразе "ADO.NET", то можно опузыриться подсказками.
Спасибо, за подсказку. Я обязательно посмотрю. Но я обратилась на этот форум не от скуки, а потому что я уже и гуглила и яндексила и всё равно не разобралась. Я думала вы мне поможете объяснить суть этой ошибки простым языком, чтобы она больше у меня не встречалась.

Добавлено через 2 минуты
К сожалению в книге про эту database вообще ни слова нет. Просто пример кода. Как я могу это исправить?
StudentIriska
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 10
09.01.2017, 20:17  [ТС]     Ошибка в приложении для работы с базой данных #7
Вот сама форма.
Миниатюры
Ошибка в приложении для работы с базой данных  
StudentIriska
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 10
09.01.2017, 20:32  [ТС]     Ошибка в приложении для работы с базой данных #8
Я уже и имена проверила. Ни одной зацепки. А так как я ещё очень начинающий программист, то хотелось бы разобраться в сути этой ошибки.

Добавлено через 13 минут
И, кстати, это пример полного кода.
bax_tang
350 / 282 / 77
Регистрация: 23.09.2016
Сообщений: 854
Завершенные тесты: 3
09.01.2017, 20:46     Ошибка в приложении для работы с базой данных #9
StudentIriska, выложите весь проект архивом на форум - так разговор примет более предметный характер.
StudentIriska
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 10
09.01.2017, 20:52  [ТС]     Ошибка в приложении для работы с базой данных #10
Сейчас сделаю. Спасибо за помощь.
StudentIriska
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 10
09.01.2017, 20:53  [ТС]     Ошибка в приложении для работы с базой данных #11
Здесь сам проект и подключаемая база данных.
Вложения
Тип файла: rar Урок 19, Базы данных.rar (104.1 Кб, 3 просмотров)
Hikari
Хитрая блондиночка $)
1446 / 953 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
09.01.2017, 21:05     Ошибка в приложении для работы с базой данных #12
Судя по всему учебник тебе достался от недалекого автора...
Я обычно не особо рекомендую, но в данном случае попробуй посмотреть как делают тут:
https://www.youtube.com/watch?v=GQfA1cvCNm0
Это видео показывает как можно состряпать простое приложение

P.S. Ссылка что-то в теге Ютюб недействительна, выкладываю так.
StudentIriska
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 10
09.01.2017, 21:12  [ТС]     Ошибка в приложении для работы с базой данных #13
Спасибо, я попробую. Автор и правда недалёкий. Я в каждом уроке нахожу ошибки. )
Shogun31337
74 / 74 / 24
Регистрация: 02.11.2016
Сообщений: 242
Завершенные тесты: 1
10.01.2017, 02:45     Ошибка в приложении для работы с базой данных #14
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот так все работает:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void loadDataGrid(DataGridView myDataGridView, string sqlQueryString)
{
    //Data Source - это путь к файлу базы данных. 
    //Можно использовать как полный, так и относительный путь.
    string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" + 
                               "Data Source=База Данных.mdb;Persist Security Info=False;";
    OleDbConnection conn = new OleDbConnection(ConnectionString);
    OleDbCommand SQLQuery = new OleDbCommand(sqlQueryString, conn);
    OleDbDataAdapter dataADAPTER = new OleDbDataAdapter(SQLQuery);
    DataTable data = new DataTable("tblData");
    dataADAPTER.Fill(data);
    myDataGridView.DataSource = data;
    myDataGridView.AllowUserToAddRows = false;
    myDataGridView.ReadOnly = true;
}
Добавлено через 23 минуты
PS. Запрос, который у Вас записан в tbRequest построен неверно.

Добавлено через 12 минут
PPS. Если я правильно уловил суть того, что должно выводиться в результате запроса,
то запрос должен выглядеть вот так:
SQL
1
2
SELECT Executor.Executor_Surname, WORK.Work_Name, Project.Project_Date 
FROM [WORK] INNER JOIN (Executor INNER JOIN Project ON Executor.Executor_ID = Project.Executor_ID) ON WORK.Work_ID = Project.Work_ID;
StudentIriska
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 10
10.01.2017, 11:42  [ТС]     Ошибка в приложении для работы с базой данных #15
Спасибо Вам за разъяснение. Теперь ошибок нет, но базу данных оно загружать не хочет даже когда я прописываю полный путь. Может подскажете как быть?
Shogun31337
74 / 74 / 24
Регистрация: 02.11.2016
Сообщений: 242
Завершенные тесты: 1
10.01.2017, 11:57     Ошибка в приложении для работы с базой данных #16
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от StudentIriska Посмотреть сообщение
Спасибо Вам за разъяснение.
Не за что!
Цитата Сообщение от StudentIriska Посмотреть сообщение
базу данных оно загружать не хочет даже когда я прописываю полный путь
1. Полный путь прописывать не обязательно, т.к. у Вас база добавлена в проект и при построении проекта она
копируется в каталог с программой.
2. А как Вы пытаетесь загружать базу? У Вас в программе, в данный момент, используется всего одна кнопка "Send Request" и весь код по загрузке данных из базы исполняется только в ней! Т.е. чтобы получить данные в гриде, нужно нажать на кнопку "Send Request" (Не забыв предварительно сделать ее активной в ее свойствах).
Shogun31337
74 / 74 / 24
Регистрация: 02.11.2016
Сообщений: 242
Завершенные тесты: 1
10.01.2017, 12:11     Ошибка в приложении для работы с базой данных #17
Результат должен выглядеть вот так:
Миниатюры
Ошибка в приложении для работы с базой данных  
StudentIriska
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 10
10.01.2017, 15:31  [ТС]     Ошибка в приложении для работы с базой данных #18
Ещё раз огромное спасибо и низкий поклон! Теперь я разобралась и в коде и в ошибках! Спасибочки!

Добавлено через 30 секунд
всё работает!!!! ура!!!
Shogun31337
74 / 74 / 24
Регистрация: 02.11.2016
Сообщений: 242
Завершенные тесты: 1
10.01.2017, 15:57     Ошибка в приложении для работы с базой данных #19
StudentIriska, всегда рад помочь! Обращайтесь, если возникнут сложности!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2017, 08:31     Ошибка в приложении для работы с базой данных
Еще ссылки по теме:

Разработать класс для работы с треугольниками C (СИ)
Использование указателей для работы с массивами данных C (СИ)
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список C (СИ)
Требуется библиотека для работы с изображениями C (СИ)
Создать структуру для работы с битами C (СИ)

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

Или воспользуйтесь поиском по форуму:
FroztBal
22 / 22 / 4
Регистрация: 18.08.2014
Сообщений: 196
Завершенные тесты: 1
12.01.2017, 08:31     Ошибка в приложении для работы с базой данных #20
Топик стартеру посоветую посмотреть видео уроки от группы ITVDN.
Yandex
Объявления
12.01.2017, 08:31     Ошибка в приложении для работы с базой данных
Ответ Создать тему
Опции темы

Текущее время: 04:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru