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

Проверка одинаковых записей в таблице

02.07.2015, 18:29. Показов 1334. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Зарастите ВСЕМ.
Наткнулся на код в тут
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        For Each adapter As NetworkInterface In NetworkInterface.GetAllNetworkInterfaces()
            ' Игнорируем неработающие интерфейсы и loopback адаптер(ы)
            If (adapter.OperationalStatus <> OperationalStatus.Up OrElse adapter.NetworkInterfaceType = NetworkInterfaceType.Loopback) Then Continue For
 
            Dim adapterName As String = adapter.Name
            ' TODO: Вывод названия адаптера
            For Each unicastIpInfo As UnicastIPAddressInformation In adapter.GetIPProperties().UnicastAddresses
                Dim address As String = unicastIpInfo.Address.ToString()
                ' TODO: Вывод очередного адреса текущего адаптера
                ' TextBox1.AppendLine(address)& vbCrLf
                TextBox1.AppendText(adapterName & " IP: " & address & vbCrLf)
 
                SqlCom = New OleDb.OleDbCommand("INSERT INTO [tab] ( [tit], [ip]) VALUES ('" & adapterName & "', '" & address & "')", Con)
                Con.Open()
                SqlCom.ExecuteNonQuery()
                Con.Close()
                Me.Close()
            Next
 
        Next
Спасибо работает нормально.

Но вот вопрос, а как сделать проверку, что в БД Access таких записей нет, по полю IP или computername и если их нет то производить добавление?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.07.2015, 18:29
Ответы с готовыми решениями:

Проверка наличия одинаковых записей в таблице
Имеются Таблица1 и Таблица2. В каждой из них есть поле &quot;Дата&quot;. В Таблице1 записей с ОДИНАКОВЫМ полем &quot;Дата&quot; порядка 4000. После...

SUM() для одинаковых записей в таблице.
Добрый день. Сразу приведу пример таблиц, а после расскажу суть вопроса. Абоненты id name 1 Vadim 2 Andrey Приход ...

Проверка одинаковых записей
Как можно проверить наличие дубликата в таблице? Например, если у нас есть логин M1, то при повторном введение логина M1 в форму создания...

9
 Аватар для vova_king
34 / 34 / 12
Регистрация: 29.07.2010
Сообщений: 417
02.07.2015, 21:36
Как полученный результат в SQL преобразовать в String?
Миниатюры
Проверка одинаковых записей в таблице  
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
02.07.2015, 21:47
Цитата Сообщение от diller Посмотреть сообщение
как сделать проверку, что в БД Access таких записей нет
Это делается на этапе организации данных, для поля ставится режим уникальности записей.

Добавлено через 6 минут
Цитата Сообщение от vova_king Посмотреть сообщение
Как полученный результат в SQL преобразовать в String?
Я не знаток работы с БД, но в коде Вы готовите выборку, но не делаете ее.
И Вы не то пытаетесь преобразовать в String, как минимум.

Извиняюсь, что так поверхностно и без примеров, просто даю пищу на подумать, а уж конкретно скажут тот, кто "в теме"
1
 Аватар для vova_king
34 / 34 / 12
Регистрация: 29.07.2010
Сообщений: 417
02.07.2015, 21:55
Так?
Миниатюры
Проверка одинаковых записей в таблице  
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
02.07.2015, 21:58
vova_king, нет, смотрите "индексированное поле"
0
 Аватар для vova_king
34 / 34 / 12
Регистрация: 29.07.2010
Сообщений: 417
02.07.2015, 22:27
Если использовать контроль средствами аксеса, то будет появляться такая ошибка. А я изачально не хотел этого!
Миниатюры
Проверка одинаковых записей в таблице  
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
03.07.2015, 06:03
Цитата Сообщение от vova_king Посмотреть сообщение
то будет появляться такая ошибка
Ну естественно, вот ее и нужно обработать в, скажем, в Try-Catch

Добавлено через 2 минуты
vova_king, помните - лучший код - это тот, который не пришлось писать.
Если есть возможность переложить функционал на саму БД, это лучше сделать, так как этот функционал писали квалифицированные программисты, и собственные велосипеды - это едва ли то, чем можно его заменить
2
 Аватар для Desh
147 / 147 / 41
Регистрация: 01.12.2009
Сообщений: 275
03.07.2015, 11:53
Цитата Сообщение от diller Посмотреть сообщение
как сделать проверку, что в БД Access таких записей нет, по полю IP или computername и если их нет то производить добавление?
Перед добавлением в базу проверяем на совпадения:
VB.NET
1
2
3
4
SqlCom = New OleDb.OleDbCommand("SELECT ID FROM [tab] WHERE (ip = '" & address & "' OR computername = '" & имякомпьютера & "')", Con)
Con.Open()
if SqlCom.ExecuteScalar > 0 then MsgBox("Есть совпадение!")
Con.Close()
"ID" -ключевое поле (счетчик), у вас может называться по другому
1
 Аватар для vova_king
34 / 34 / 12
Регистрация: 29.07.2010
Сообщений: 417
03.07.2015, 13:05
Я правильно понял?
VB.NET
1
2
3
4
5
6
7
8
9
10
11
                Try
                    SqlCom = New OleDb.OleDbCommand("Select * From [tab] where [ip] > '" & address & "'")
                    SqlCom = New OleDb.OleDbCommand("INSERT INTO [tab] ( [tip], [ip]) VALUES ('" & adapterName & "', '" & address & "')", Con)
                    Con.Open()
                    SqlCom.ExecuteNonQuery()
                    Con.Close()
 
                Catch ex As Exception
                    Label2.Text = "в базе есть совпадения"
                    TextBox1.AppendText(adapterName & " IP: " & address & vbCrLf)
                End Try
0
 Аватар для Desh
147 / 147 / 41
Регистрация: 01.12.2009
Сообщений: 275
03.07.2015, 14:57
нет, не правильно. Сначала выполняем запрос на выборку, и в зависимости от того - что вернет результат запроса добавляем или нет данные в базу.
VB.NET
1
2
3
4
5
6
SqlCom = New OleDb.OleDbCommand("SELECT ID FROM [tab] WHERE (ip = '" & address & "' OR computername = '" & имякомпьютера & "')", Con) 'Запрос на получение значения поле ID где ip = address или computername = имя компьютера
Con.Open()
if SqlCom.ExecuteScalar > 0 then Label2.Text = "в базе есть совпадения": Exit Sub 'Если SqlCom.ExecuteScalar вернет ноль - значит совпадений нет. Если есть совпадения - выходим из процедуры, если нет переходим к добавлению данных в базу
 SqlCom = New OleDb.OleDbCommand("INSERT INTO [tab] ( [tip], [ip]) VALUES ('" & adapterName & "', '" & address & "')", Con)
SqlCom.ExecuteNonQuery()
Con.Close()
В вашем последнем посте запрос на выборку не будет выполнен, будет выполнено только добавление в базу

Добавлено через 5 минут
Цитата Сообщение от vova_king Посмотреть сообщение
SqlCom = New OleDb.OleDbCommand("Select * From [tab] where [ip] > '" & address & "'")
В этом запросе вы выбираете все поля где IP > address, скорее всего у вас всегда будет NULL или 0 или ошибка так как address - string.
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.07.2015, 14:57
Помогаю со студенческими работами здесь

Как узнать количество одинаковых записей в таблице Access?
подскажите пожалуйста как узнать количество одинаковых записей в таблице Access и вывести в отчет например: Маша - 10 записей Дима -...

Проверка на наличиие одинаковых записей
Всем доброго времени суток! Имеется таблица &quot;Товар&quot; (поля: idtovar, name, colour, kolichestvo, postavshik, price, suma) (БД...

Проверка на повторение записей в таблице
Есть таблица ДБГрид там есть 2 поля &quot;автомобиль&quot; и &quot;дата-тест драйва&quot; как сделать так что бы на один автомобиль был только один тест-драйв...

Проверка на количество записей в таблице
Пишу вот такой код, для проверки существования в базе пользователя с таким Email, но он не работает и постоянно выдаёт что пользователь...

Проверка и запрет ввода одинаковых записей в базу данных
Добрый день. Пытаюсь написать клиент-серверное приложение на Delphi + База данных (SQL Server). Раньше подобного не разрабатывала, поэтому...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru