powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / C# и редактирование БД в отдельном окне
5 сообщений из 5, страница 1 из 1
C# и редактирование БД в отдельном окне
    #36811200
strint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Вопрос наверняка поднимался, так что извиняйте за повтор.
Нужно на основе DataGridView, в отдельном окне редактировать или добавлять записи в БД. В Дельфи это было оч.просто, но как понял, при программировании на C#, все обстоит совсем по другому. Просветите…
...
Рейтинг: 0 / 0
C# и редактирование БД в отдельном окне
    #36812158
strint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может, недостаточно точно описал то, что требуется. Попробую еще раз. Есть некий DataGridView, указатель стоит на определенной записи. Так вот, по нажатию кнопки «редактировать», данные из этой записи, попадают в соответствующие textbox`ы некой модальной формы. Вносим изменения в этих textbpx`ах, нажимаем OK и запись соответственно обновляется. То же самое необходимо при добавлении новой записи: появляется модальное окно с пустыми textbox`ами, вносим нужную информацию и по кнопке ОК, запись добавляется в БД.
Повторюсь, в дельфи, это всё было оч.просто, а как это реализовать в ADO.NET на C#?
...
Рейтинг: 0 / 0
C# и редактирование БД в отдельном окне
    #36812228
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strintМожет, недостаточно точно описал то, что требуется.
Да нет, Вы все точно описали. Лично я понял так: Вас надо научить разрабатывать WinForm-приложения на C#. С чего начнем?
Присаживайтесь поудобнее - я стану переписывать сюда книгу "Программирование на C#".
...
Рейтинг: 0 / 0
C# и редактирование БД в отдельном окне
    #36812268
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strint,

А если серьезно, то скажу Вам, как человек, занимавшийся разработкой и на Delphi и на VS - все совершенно похоже.
Вот типовая конструкция вызова диалога:
Код: plaintext
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.
        #region Редактировать роль

        /// <summary>
        /// Вызов редактора роли для изменения
        /// </summary>
        private void UpdateRole()
        {
            Application.DoEvents();
            Cursor c = Cursor.Current;
            Cursor.Current = Cursors.WaitCursor;
            try
            {
                DataRow row = GetFocusedRow(); // Метод, получающий текущую строку таблицы
                if (row != null)
                {
                    if (frmRoleEditor.CallRoleEditor(ref row, openMode.Edit))
                        dsUserRoles1.AcceptChanges();
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("При редактировании роли произошла ошибка:\r\n" + e.Message,
                    "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                Cursor.Current = c;
            }
        }

        #endregion

А вот "ответный" метод формы-редактора:
Код: plaintext
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.
        /// <summary>
        /// Основной метод редактора
        /// </summary>
        /// <param name="aRow"></param>
        /// <param name="aOpenMode"></param>
        /// <returns></returns>
        public bool Open(ref DataRow aRow, openMode aOpenMode)
        {
            OpenMode = aOpenMode;
            try
            {
                switch (aOpenMode)
                {
                    case openMode.New:
                        this.Text = "Ввод роли";
                        NewData(aRow); // Метод, отвечающий за создание нового объекта
                        break;

                    case openMode.Edit:
                        this.Text = "Редактирование роли";
                        FillData(aRow); // Метод, отвечающий за получение объекта из БД
                        break;

                    case openMode.View:
                        this.Text = "Просмотр роли";
                        FillData(aRow); // Метод, отвечающий за получение объекта из БД
                        break;
                }

                if (ShowDialog() == DialogResult.OK)
                {
                    FillRefRow(ref aRow); // Метод, отвечающий за заполнение параметра (строки), которая вернется в вызывающую форму
                    return true;
                }
                else return false;
            }
            catch (Exception E)
            {
                MessageBox.Show("При создании или редактировании роли произошла ошибка\r\n" + E.Message, "Ошибка",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
        }
...
Рейтинг: 0 / 0
C# и редактирование БД в отдельном окне
    #36812283
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, пропущен промежуточный метод класса формы-редактора:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        /// <summary>
        /// Метод, используемый вызывающими классами для создания и отображения формы-редактора 
        /// </summary>
        /// <param name="aRow"></param> Строка, передаваемая вызывающей формой
        /// <param name="aOpenMode"></param> Режим окна редактирования (ввод, редактирование, просмотр)
        /// <returns></returns>
        public static bool CallRoleEditor(ref DataRow aRow, openMode aOpenMode)
        {
            return (new frmRoleEditor().Open(ref aRow, aOpenMode));
        }
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / C# и редактирование БД в отдельном окне
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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