powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Новичок: Как наладить взаимодйствие?
6 сообщений из 6, страница 1 из 1
Новичок: Как наладить взаимодйствие?
    #39825161
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил пространство имен
Код: c#
1.
using System.Data.SQLite;



создал переменные
Код: c#
1.
2.
3.
private String dbFileName;
        private SQLiteConnection m_dbConn;
        private SQLiteCommand m_sqlCmd;



Подключился к БД
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
m_dbConn = new SQLiteConnection();
            m_sqlCmd = new SQLiteCommand();

            dbFileName = textBox1.Text;
            lbStatusText.Text = "Disconnected";
            m_dbConn = new SQLiteConnection("Data Source=" + dbFileName + ";Version=3;");

            try
            {
                m_dbConn.Open();
                lbStatusText.Text = "Connected";
            }
            catch (SQLiteException ex)
            {
                lbStatusText.Text = "Disconnected";
                MessageBox.Show("Error: " + ex.Message);
            }



Произвел выборку и заполнил сетку

Код: 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.
DataTable dTable = new DataTable();
            String sqlQuery;

            if (m_dbConn.State != ConnectionState.Open)
            {
                MessageBox.Show("Open connection with database");
                return;
            }

            try
            {
                sqlQuery = "SELECT * FROM users";
                SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlQuery, m_dbConn);
                adapter.Fill(dTable);

                if (dTable.Rows.Count > 0)
                {
                    dgvViewer.Rows.Clear();

                    for (int i = 0; i < dTable.Rows.Count; i++)
                    {
                        dgvViewer.Rows.Add(dTable.Rows[i].ItemArray);
                        MessageBox.Show(dTable.Rows[i].Field('user_id').ToString); //Не работает (непонятно, как получить значение поля в цикле)
                    }
                }
                else
                    MessageBox.Show("Database is empty");
            }
            catch (SQLiteException ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }



1.Не могу получить данные поля - как это правильно сделать?
2.Как потом по (например, при клике по сетке) получать id строки, если в сетке нет такого поля. Или это возможно только при подключении к базе ч-з Источники данных и связке грида с набором из источника? Если так, то получается, что без создания источника данных (ч-з провайдера) нормально приложения для работы с БД не сделать?
3.Можно как-то связать набор данных dTable с сеткой dgvViewer, что бы курсор ходил по dTable и значения можно было бы брать оттуда?
4.Как вообще обычно реализовывается изменение в БД, при изменении дынных в ячейке сетки (при таком подключении) при подключении ч-з источник данных?
5.Как выполнить обновление именно текущей записи грида значениями из БД не перегружая все содержимое?
...
Рейтинг: 0 / 0
Новичок: Как наладить взаимодйствие?
    #39825506
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
antox2.Как потом по (например, при клике по сетке) получать id строки, если в сетке нет такого поля.
(dgvViewer.CurrentRow as DataRowView)["id"]


antox3.Можно как-то связать набор данных dTable с сеткой dgvViewer, что бы курсор ходил по dTable и значения можно было бы брать оттуда?
Можно и именно так и надо делать, а не заниматься фигней типа
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if (dTable.Rows.Count > 0)
                {
                    dgvViewer.Rows.Clear();

                    for (int i = 0; i < dTable.Rows.Count; i++)
                    {
                        dgvViewer.Rows.Add(dTable.Rows[i].ItemArray);
                        MessageBox.Show(dTable.Rows[i].Field('user_id').ToString); //Не работает (непонятно, как получить значение поля в цикле)
                    }
                }



Привязка

https://docs.microsoft.com/ru-ru/dotnet/framework/winforms/controls/how-to-bind-data-to-the-windows-forms-datagridview-control

Но лучше делать все это в дизайнере, создав типизированный DataSet.

У Вас ВСЕ или неправильно, или нерационально
...
Рейтинг: 0 / 0
Новичок: Как наладить взаимодйствие?
    #39825533
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за информацию. Как раз пытаюсь понять, как это делается правильно.

Cat2Но лучше делать все это в дизайнере, создав типизированный DataSet.


Можете дать ссылку на почитать или ключевые слова поиска по данной теме..?
...
Рейтинг: 0 / 0
Новичок: Как наладить взаимодйствие?
    #39825563
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
antox,

Во-первых
Практическое руководство. Привязка данных к элементу управления Windows Forms DataGridView
https://docs.microsoft.com/ru-ru/dotnet/framework/winforms/controls/how-to-bind-data-to-the-windows-forms-datagridview-control




Только учтите, что в реале никто так не делает. Практически все это делается в дизайнере.

Шаг 1. Создание типизированного DataSet
https://docs.microsoft.com/ru-ru/previous-versions/04y282hb(v=vs.140)

Шаг 2.
Пошаговое руководство. Подключение к данным в базе данных (Windows Forms)
https://docs.microsoft.com/ru-ru/previous-versions/tzedkwye(v=vs.140)



И очень полезная вечнозеленая статья

https://www.rsdn.org/article/dotnet/DataGridView20.xml
...
Рейтинг: 0 / 0
Новичок: Как наладить взаимодйствие?
    #39825627
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Только учтите, что в реале никто так не делает. Практически все это делается в дизайнере.

Именно это я и хотел понять. Что бы пойти по правильному пути. Спасибо ))
...
Рейтинг: 0 / 0
Новичок: Как наладить взаимодйствие?
    #39825882
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

Браво! Я не смог адекватно ответить, не посылая в учебник через 3 колена.!!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Новичок: Как наладить взаимодйствие?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]