Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / C# и редактирование БД в отдельном окне / 5 сообщений из 5, страница 1 из 1
25.08.2010, 16:50
    #36811200
strint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# и редактирование БД в отдельном окне
Добрый день.
Вопрос наверняка поднимался, так что извиняйте за повтор.
Нужно на основе DataGridView, в отдельном окне редактировать или добавлять записи в БД. В Дельфи это было оч.просто, но как понял, при программировании на C#, все обстоит совсем по другому. Просветите…
...
Рейтинг: 0 / 0
26.08.2010, 10:13
    #36812158
strint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# и редактирование БД в отдельном окне
Может, недостаточно точно описал то, что требуется. Попробую еще раз. Есть некий DataGridView, указатель стоит на определенной записи. Так вот, по нажатию кнопки «редактировать», данные из этой записи, попадают в соответствующие textbox`ы некой модальной формы. Вносим изменения в этих textbpx`ах, нажимаем OK и запись соответственно обновляется. То же самое необходимо при добавлении новой записи: появляется модальное окно с пустыми textbox`ами, вносим нужную информацию и по кнопке ОК, запись добавляется в БД.
Повторюсь, в дельфи, это всё было оч.просто, а как это реализовать в ADO.NET на C#?
...
Рейтинг: 0 / 0
26.08.2010, 10:34
    #36812228
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# и редактирование БД в отдельном окне
strintМожет, недостаточно точно описал то, что требуется.
Да нет, Вы все точно описали. Лично я понял так: Вас надо научить разрабатывать WinForm-приложения на C#. С чего начнем?
Присаживайтесь поудобнее - я стану переписывать сюда книгу "Программирование на C#".
...
Рейтинг: 0 / 0
26.08.2010, 10:44
    #36812268
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# и редактирование БД в отдельном окне
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
26.08.2010, 10:48
    #36812283
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# и редактирование БД в отдельном окне
Да, пропущен промежуточный метод класса формы-редактора:
Код: 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
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / C# и редактирование БД в отдельном окне / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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