powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проверка одинаковых записей в таблице
10 сообщений из 10, страница 1 из 1
Проверка одинаковых записей в таблице
    #38998722
minioracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток.
Хотелось бы узнать как в VB.net 2010 реализовать проверку ввода данных в БД
Т.е. имеется таблица Access в которой 3 поля id, tit, ip
в которую заносятся данные по IP и имя сетевого адаптера
Хотелось бы сделать проверку заносимых данных в базу, если они повторяются то не заносить, а если нету, то вводить.
Использую такой код

Код: vbnet
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


Но если я проверку делаю в самой таблице то появляется сообщения, а я б не хотел выводить это сообщение, а просто их не вводить
...
Рейтинг: 0 / 0
Проверка одинаковых записей в таблице
    #38998779
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minioracle,
А что мешает перед Insert выполнить команду Select на проверку уже введенных значений?
...
Рейтинг: 0 / 0
Проверка одинаковых записей в таблице
    #38998811
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minioracleДоброе время суток.
Хотелось бы узнать как в VB.net 2010 реализовать проверку ввода данных в БД
Т.е. имеется таблица Access в которой 3 поля id, tit, ip
в которую заносятся данные по IP и имя сетевого адаптера
Хотелось бы сделать проверку заносимых данных в базу, если они повторяются то не заносить, а если нету, то вводить.

Но если я проверку делаю в самой таблице то появляется сообщения, а я б не хотел выводить это сообщение, а просто их не вводить


1. проверять перед инсертом
2. завернуть в try-catch, чтобы не было такой фигни типа "необрабатываемое исключение"
...
Рейтинг: 0 / 0
Проверка одинаковых записей в таблице
    #38998824
minioracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я правильно понял?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
                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
                    MsgBox("в базе есть совпадения")
                End Try
...
Рейтинг: 0 / 0
Проверка одинаковых записей в таблице
    #38998846
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minioracle,
А почему проверка адреса >, а не, например, <?
И почитайте как вызываются команды и что от них Вы хотите получить.
...
Рейтинг: 0 / 0
Проверка одинаковых записей в таблице
    #38998890
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minioracleЯ правильно понял?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
                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
                    MsgBox("в базе есть совпадения Какая-то фигня при записи в базу")
                End Try



лучше так и показать ex.Message
...
Рейтинг: 0 / 0
Проверка одинаковых записей в таблице
    #38998899
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бессмысленный код.
...
Рейтинг: 0 / 0
Проверка одинаковых записей в таблице
    #38998906
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minioracle,

вы написали:
Код: c#
1.
2.
3.
a = 5;
a = 6;
b = a * 3;

в чем смысл первой строки?
...
Рейтинг: 0 / 0
Проверка одинаковых записей в таблице
    #39003103
LameUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minioracleДоброе время суток.
Хотелось бы узнать как в VB.net 2010 реализовать проверку ввода данных в БД
Т.е. имеется таблица Access в которой 3 поля id, tit, ip
в которую заносятся данные по IP и имя сетевого адаптера
Хотелось бы сделать проверку заносимых данных в базу, если они повторяются то не заносить, а если нету, то вводить.
Использую такой код

Код: vbnet
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


Но если я проверку делаю в самой таблице то появляется сообщения, а я б не хотел выводить это сообщение, а просто их не вводить

Я бы вам предложил сделать сохранение через процедуру.

Т.е. вы вызываете на стороне сервера процедуру с тремя параметрами Save(id,tit,ip).

Внутри самой процедуры и разбираете поведение
1. Если есть нет записи в таблице, инсерт.
2. Если есть - упдейт/игнор.

Думаю не стоит перегружать логику клиентской части проверками, которые относятся к серверной части.
...
Рейтинг: 0 / 0
Проверка одинаковых записей в таблице
    #39003134
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно в самой базе задать параметры уникальности для соответствующих полей. И проверять на уровне базы данных, а не на уровне её клиента.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проверка одинаковых записей в таблице
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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