Предотвратить повторяющиеся данные вставлены из списка флажков VB.NET - PullRequest
0 голосов
/ 08 февраля 2019

Приветствие!

У меня есть пункт в моем веб-форме.Он уже работает нормально, но я хочу, чтобы он не вставлял те же данные (дубликаты) в таблицу.
Вот мой код:

Using conn2 As New SqlConnection()
        conn2.ConnectionString = ConfigurationManager _
            .ConnectionStrings("BackboneConnectionString").ConnectionString()
        Using cmd As New SqlCommand
            cmd.CommandText = "Insert into EL_MstFunctionalNilai values(@IDFunc, @nik, @IDFuncParent, @IDFuncChild, @IDFuncMtr, '', '', '0')"
            cmd.Connection = conn2
            conn2.Open()
            For Each item As ListItem In CheckBoxList2.Items
                If item.Selected Then

                    Dim urutan As Int32 = GetNumberFunctional()
                    Dim str As String = item.Value.ToString

                    Dim strArr() As String = str.Split("_")
                    Dim IDFunctionalParent1 As String = strArr(0)
                    Dim IDFunctionalChild1 As String = strArr(1)
                    Dim IDFunctionalMtr1 As String = strArr(2)

                    cmd.Parameters.Clear()
                    cmd.Parameters.AddWithValue("@IDFunc", urutan)
                    cmd.Parameters.AddWithValue("@nik", txtnik.Text)
                    cmd.Parameters.AddWithValue("@IDFuncMtr", IDFunctionalMtr1) 'mtr
                    cmd.Parameters.AddWithValue("@IDFuncParent", IDFunctionalParent1) 'parent 
                    cmd.Parameters.AddWithValue("@IDFuncChild", IDFunctionalChild1) 'child

                    cmd.ExecuteNonQuery()

                End If
            Next
            conn2.Close()
        End Using
    End Using

NB.«nik» - это идентификатор сотрудника -> поэтому 1 сотрудник не получит повторяющихся данных

Как проверить, присутствуют ли в таблице «IDFunctionalParent1», «IDFunctionalChild1» и «IDFunctionalMtr1» (параметр: «nik»)вставить их в таблицу?

ура

1 Ответ

0 голосов
/ 08 февраля 2019

используйте это в своем операторе вставки

coalesce((select max(id)+1 from table),0)

, если я добавлю его в ваш код, тогда

Insert into EL_MstFunctionalNilai values(coalesce((select max(id)+1 from EL_MstFunctionalNilai),0), @nik, @IDFuncParent, @IDFuncChild, @IDFuncMtr, '', '', '0')

0 будет значением по умолчанию, если возвращено значение NULL

...