Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.06.2017
Сообщений: 47

Поиск и добавление в DataGridView

10.11.2017, 14:40. Показов 1558. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
DGV заполняется из SQL-2008. Например Ф.И.О. добавляется в базу через TextBox по нажатию кнопки.
Если Ф.И.О. которое мы хотим добавить уже существует, программа должна выдать MsgBox и выделить строку в DGV с этим Ф.И.О.
Как это сделать подскажите пожалуйста.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2017, 14:40
Ответы с готовыми решениями:

Добавление строк в DataGridView
Среда Visual Basic STUDIO’2010 Professional На форме Form11 имеется кнопка для добавления Новой строки в DataGridView1, находящийся...

Добавление новой строки в DatagridView
День добрый. Была уже такая тема от Zaharius, однако повис в воздухе такой вопрос: И вопрос этот очень насущный ибо я мониторю СОМ...

Добавление элементов в ComboBox из DataGridView
В нужно добавить элементы в combobox через dgv что бы потом легче отслеживать строку с этом элементом (они будет иметь один индекс если...

5
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
10.11.2017, 15:06
А SQL-2008 при чём ? Нужно ведь искать в DGV фамилию, которая введена в текстбокс?
0
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
10.11.2017, 16:39
Цитата Сообщение от SoftIce Посмотреть сообщение
А SQL-2008 при чём ?
В DGV искать дольше, чем в БД.
Оптимальнее всего искать именно в БД, она для этого и предназначена.

Ищем в БД, находим. Берем из БД индекс найденной записи и в DGV обращаясь по индексу просто закрашиваем ячейку.
Этот вариант будет быстрее, чем перелопачивать DGV и что-то в нем искать методом простого перебора.

Но тут опять же, зависит от объема данных. Если поиск идет среди нескольких десятков фамилий, то визуально, оба варианта отработают одинаково. Если объемы большие, то вариант с БД будет как минимум на 30% быстрее.
0
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,508
Записей в блоге: 2
10.11.2017, 18:06
Цитата Сообщение от anvarik_89 Посмотреть сообщение
DGV заполняется из SQL-2008.
Источником данных для DGV, судя по всему, является DataTable (DataView) т.е. и поиск будет выполняться в таблице и уж никак не путем перелопачивания DGV.
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4323 / 3397 / 507
Регистрация: 27.01.2014
Сообщений: 6,197
10.11.2017, 18:30
Дядя Корней, по индексу чего?
если строки DGV то, будут проблемы, если таблицу отсортировали и данные в ней не в том порядке, как они получены были из БД

Добавлено через 2 минуты
да и индексы не всегда идут одинн за другим. если какая, то запись удалена, то и индекс соответственно тоже.. вобщем с индексом мне кажется не то пальто.
1
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,508
Записей в блоге: 2
11.11.2017, 13:08
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Ищем запись по полю Name. Сортировка в DataGridView не влияет на результат.
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub RowFindByName_Click(sender As System.Object, e As System.EventArgs) Handles RowFindByName.Click
    If TextBox2.Text.Length = 0 Then Exit Sub
    Dim dgRows = From r As DataGridViewRow In DataGridView1.Rows Where r.Cells("Name").Value = TextBox2.Text
    If dgRows.Count = 0 Then
        MsgBox("Строка не найдена!")
        Exit Sub
    Else
        Dim ii As Integer = DataGridView1.Rows.IndexOf(dgRows(0))
        DataGridView1.Rows(ii).Selected = True
        DataGridView1.FirstDisplayedScrollingRowIndex = DataGridView1.Rows.IndexOf(DataGridView1.Rows(ii))
    End If
End Sub
Добавлено через 12 часов 20 минут
Добавлю пару замечаний:
  • Предполагается что ФИО это одно поле (что вообще-то не очевидно).
  • ТС предполагает, что значения в поле ФИО уникальны, но это не так. Дублирование значений ФИО событие маловероятное, но не невозможное. На мой взгляд, правильнее было бы выделять все дубли по заданному ФИО в отдельный список (для просмотра и принятия решения по продолжению или отказу от ввода данных).
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.11.2017, 13:08
Помогаю со студенческими работами здесь

Добавление данных в массив из DataGridView
Как добавить в массив данные DataGridView1 состоящих из n - строк и n - столбцов, и сохранить в какой нибудь файл?

Добавление новой строки в DatagridView
Имеется DataGridView, связанная с источником данных. Как положено, последняя строка сетки - пустая. При добавлении в неё данных, она...

Добавление данных в ячейку DataGridView
Добрый день! подскажите как добавлять данные не во всю строку Datagrid, а лишь в его ячейку. vb 2010

Добавление в DataGridView нового столбца
Уже неделю сижу не могу разобраться с этим объектом Public Class Form1 Dim dt As New DataTable Private Sub...

Добавление программно строк в DataGridView
Имею на форме picturebox, как кликая по нему добавлять новые строки в datagrid с координатами точки. Каждая координата записывается в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть. Дело в том, что я. . .
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер