|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
|
MS SQL Работа с данными через другие формы22.10.2021, 11:37. Показов 2144. Ответов 12
Метки нет (Все метки)
Добрый день. Написал приложение, взаимодействующее с БД MS SQL Server.
Работу с данными я делал ранее напрямую через источники данных, но через подключение по строке - приходится делать впервые, вначале запретил ручное редактирование таблицы, для редактирования через формы. На вставку, обновление, поиск и удаление данных есть другие формы (Вставка/Обновить/Найти/Удалить). С вызовом форм проблем нет. В формах - TextBox-ы с данными из строки (номер,имя и тд) кнопки в самих формах: Вставка, Обновление, Найти, Удалить, которые осуществляют операцию. DataGridView я установил модификатор public. Но никак не могу подключиться к DataGridView - любая форма не видит. TextBox и кнопки на формах работы с данными - модификатор public. Я не так давно начал работать с этим, думал, что задача пустяковая, но не выходит. (выбрав в DGV строку, изменить ее данные в TextBox и после изменить данные и в DGV, написать туда и добавить данные, удалить данные выбранные из строки DGV, скопированные в поля TextBox). Нужно: 1) Поиск запись в таблице по одному из признаков (номер,имя и тд), если заполнен хотя бы 1 или более TextBox, и такая запись присутствует в столбце. 2) Обновить/удалить данные через форму, в каждую форму по TextBox-ам подгружается выбранная строка из DataGridView - номер,имя из DGV в свой TextBox и редактирование/принятие удаления данных 3) Вставить - просто добавить данные из всех TextBox в DataGridView, в новую строку. Добавлено через 27 минут Хотя бы примеры, как правильно форма с несколькими TextBox "увидит" DataGridView и может с ним манипулировать. Добавлено через 17 минут Соль в том, чтобы другие формы, например Form2 вообще увидели DataGridView на Form1. Без этого ни один метод для кнопок не работает - формы не распознают DGV
0
|
|
| 22.10.2021, 11:37 | |
|
Ответы с готовыми решениями:
12
Иерархическое заполнение данными через конструктор формы |
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
|
| 22.10.2021, 11:52 [ТС] | |
|
К примеру, попытка реализовать поиск в DataGridView из второй формы, если данные, введенные хотя бы в одном TextBox присутствуют в таблице. И так - с любым методом работы с DGV в любой форме - не видит DGV.. Как его правильно подключить к форме2, чтобы можно было работать с ним - ничего конкретного не могу найти.
0
|
|
|
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
|
|
| 22.10.2021, 11:58 | |
|
Jim Reinor,
.. старый код, но смысл поймете? форму с DGV надо передавать аргументом .. там еще и кино есть ... How to Add a New Row To Datagridview From Another Form Using C#
1
|
|
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||||||
| 22.10.2021, 12:41 [ТС] | ||||||
|
carrotik, ну что ж, посмотрел, привязал DGV к формам. Вроде неплохо. Поиск заработал.
Однако, далее, при попытке добавить в DGV данные из Textbox появляется ошибка "Строки нельзя программным способом добавить в коллекцию строк DataGridView, если элемент управления привязан к данным." в строке dataGridView1.Rows.Add();
0
|
||||||
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
||||||||
| 22.10.2021, 14:47 | ||||||||
|
Создание/редактирование. Передаете в форму в качестве параметра DataRow. Привязываете данные к контролам редактирования. Профессионалы используют Binding, г-кодеры пишут просто
0
|
||||||||
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
|
| 22.10.2021, 15:06 [ТС] | |
|
Igr_ok, С поиском и удалением я уже разобрался, к удалению только надо будет валидацию прикрутить, чтобы изменения DGV сохранялись в БД.
А вот проблемы с добавлением - гадкая ошибка "Строки нельзя программным способом добавить в коллекцию строк DataGridView, если элемент управления привязан к данным.", все пытаюсь найти фикс. С обновлением - мне удалось только залить выбранную строку в DGV, но изменить ее не могу - та же ошибка.
0
|
|
|
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
|
|
| 22.10.2021, 15:47 | |
|
0
|
|
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||
| 22.10.2021, 16:09 [ТС] | ||
|
Как все таки пофиксить ошибку и суметь добавить/изменить данные через dataGridView1.Rows.Add()?
Добавлено через 19 минут
0
|
||
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
|
| 23.10.2021, 13:13 | |
|
Jim Reinor, во вложении простой пример редактирования записи
0
|
|
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
|
| 23.10.2021, 14:03 [ТС] | |
|
Сейчас попробую протестировать и переписать под свои нужды. Смутило то, что синтаксис
row[1] = $"Name{i+1}"; начиная с $ ошибочным горит, и требование нового фреймворка. Попробую обойти ошибку уже в своем проекте. Добавлено через 14 минут Разобрался, $ - опечатка, пересобрал проект под свой фреймворк и протестировал - пример рабочий, сейчас буду интегрировать методику заполнения в свой. Добавлено через 15 минут К сожалению, совсем не помогло при интеграции на свою задачу. Добавление данных через другую форму, используя из примера методы row["e_Num"] = textBox1.Text; - Столбец не принадлежит таблице , или другие исключения. Метод LoadData(); совершенно непригоден под выгрузку данных из таблицы БД, и пригоден только для задания типа данных в DGV и автозаполнения нескольких значений, пришлось оставить старый метод. Пример оказался рабочим только с встроенной заполняющейся DataGridView, которая размечается через LoadData();, в котором прописаны тип и величина переменной, и автозаполнение циклом на 10 рядов. Придется мне поискать другой способ переписать приложение.
0
|
|
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
||||
| 23.10.2021, 15:18 | ||||
|
DataTable и привязываются к гриду. Что тут сложного? На основании примера вы должны создать собственный способ решения задачи, а не надеяться, что достаточно будет скопировать код.
0
|
||||
|
8 / 12 / 2
Регистрация: 25.12.2017
Сообщений: 280
|
||
| 23.10.2021, 15:24 [ТС] | ||
|
Название столбца написано правильно, оно таковое и в БД. А в шапке DGV - "русифицированная" подпись программным переименованием ячейки. Метод LoadData(); может грузить только заданные данные, из БД никак не выгрузить, я пробовал по разному добавлять данные, и не выходит. Я на основании примера и создавал свое решение задачи, но оно не подходит совсем под эту область. Похоже, что без встроенных SQL-запросов задача не решаемая и надо строить взаимодействие с таблицей на них, обернув их в код. Иначе ни работы с данными, ни валидации изменений не видать. Сейчас смотрю пример по видео, возможно будет лучше.
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 23.10.2021, 15:45 | |
|
Jim Reinor, Ваша основная ошибка - попытка работать дедовскими методами (все эти Row и Column с индексаторами) + редактирование непосредственно в гриде. И никакие фрейморки тут не при чем. Сам метод достаточно кривой и имеет тучу недостатков, начиная от валидации и заканчивая написанием моря кода для событий всех этих адаптеров, гридов и датасетов. Для людей с опытом это не проблема, а для новичков типа Вас - геморрой с гонореей
![]() Нужны модели + репозиторий + добавление/изменение через модальные формы.
0
|
|
| 23.10.2021, 15:45 | |
|
Помогаю со студенческими работами здесь
13
Работа с данными JSON через графический интерфейс Работа с данными без использования БД Access (через классы) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|