2016-12-09 3 views
0

У меня возникла проблема с введением данных в две разные таблицы. Поэтому мои требования таковы.CheckIfExist. Если существуют, не вставляйте данные, если не вставляете данные

  • Под Детали группы, пользователь должен нажать всю необходимую информацию о выпадающего меню и ввода в текстовое поле в представлении таблицы сетки, прежде чем нажать Добавить ссылку, после этого страница будет загружаться отображая Добавлено Профессия и сведения о бизнес-группе. Пользователю разрешено вводить столько заданий, сколько пожелает пользователь.

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

Так моя первая таблица выглядит следующим образом Before

и отредактировать его, и это мой стол Now

Так что моя проблема в том, что, в моей базе данных у меня есть две таблицы. Один из них - EMPGROUP_TBL с колонками SEQID, masterID, Business Unit, Division, Sub Division и т. Д., А другой - EMP_MASTERTBL с столбцами MasterID, Name, LastName, Jobtitle.

Теперь каждый раз, когда я нажимаю кнопку «Добавить ссылку», имя jobtitle не сможет сохранить в EMP_MASTERTBL, поэтому я создаю код в VB.Net, который обновит таблицу EMP_MASTERTBL, когда я нажму кнопку «Добавить» в разделе «Сведения группы».

Вот мои коды.

If UpdateInsDelRecord("INSERT INTO EMPGROUP_TBL (MASTERID, BUSINESS_UNIT, " & _ 
        "DIVISION, SUB_DIVISION, CLASSIFICATION, SUB_CLASSIFICATION) VALUES " & _ 
        "('" & HandleQuote(Me.lblval_Empid.Text) & "', " & _ 
        "'" & Me.ddl_BusinessUnit.SelectedValue.ToString() & "' ," & _ 
        "'" & val_division & "' ," & _ 
        "'" & val_subdivision & "' ," & _ 
        "'" & Me.ddl_Classification.SelectedValue.ToString() & "' ," & _ 
        "'" & Me.ddl_SubClassification.SelectedValue.ToString() & "')" & _ 
        ";" & _ 
        "UPDATE EMP_MASTERTBL SET JOBTITLE = '" & Me.txtJobtitle.Text & "' " & _ 
        "WHERE MASTERID = '" & Me.lblval_Empid.Text & "'") = True Then 
    Return True 
    Response.Redirect("eHR_EmpMaintenance.aspx") 
Else 
    Return False 
End If 

Но пользователь должен иметь возможность добавить столько, сколько Jobtitle и EMPGROUP_TBL детали, как пользователь хочет. Итак, я думаю, что я просто напишу еще один запрос для этого? Как я могу добавить данные группы и иметь возможность добавлять столько, сколько Jobtitle по желанию пользователя?

CheckIfExist

Я подумал, может быть, я мог бы использовать CheckIfExist и если работник имеет существующие данные в jobtitle, бизнес-единицу, разделение, подотдел, классификация и суб-классификацию, аналогичную тот, что вы добавите, в окне сообщения показывается, что данные уже существуют. Если данные не найдены, он сможет добавить данные в детали группы сотрудников. И если вы вводите аналогичные данные о работе, но разные бизнес-единицы и т. Д., Данные будут просто обновлены и наоборот.

Вот что мой код для этого.

Function SaveUserGroup() As Boolean 
    Try 
     Dim jobtitle As String = Me.txtJobtitle.Text 
     Dim businessunit As String = Me.ddl_BusinessUnit.SelectedValue 
     Dim division As String = Me.ddl_Division.SelectedValue 
     Dim subdivision As String = Me.ddl_SubDivision.SelectedValue 
     Dim classification As String = Me.ddl_Classification.SelectedValue 
     Dim subclassification As String = Me.ddl_SubClassification.SelectedValue 
     Dim CheckMasterTblIfExist As Boolean 
     Dim CheckGroupTblIfExist As Boolean 
     Dim insrtResult As Boolean 
     Dim seqid As String = Me.lblSEQID.Text 
     Dim emp_id As String = Request.QueryString("emp_id") 

     If jobtitle <> "" And businessunit <> "Please Select" And division <> "Please Select" And subdivision <> "Please Select" And classification <> "Please Select" And subclassification <> "Please Select" Then 
      CheckMasterTblIfExist = CheckRecord("SELECT MASTERID, JOBTITLE FROM EMP_MASTERTBL WHERE JOBTITLE = '" & jobtitle & "' AND MASTERID = '" & emp_id & "' ") 
      CheckGroupTblIfExist = CheckRecord("SELECT * FROM EMPGROUP_TBL WHERE BUSINESS_UNIT = '" & businessunit & "' AND DIVISION = '" & division & "' AND SUB_DIVISION = '" & subdivision & "' AND CLASSIFICATION = '" & classification & "' AND SUB_CLASSIFICATION = '" & subclassification & "' AND MASTERID = '" & emp_id & "' AND SEQID = '" & seqid & "'") 
      If Not CheckMasterTblIfExist And CheckGroupTblIfExist Then 
       insrtResult = UpdateInsDelRecord("UPDATE EMP_MASTERTBL SET JOBTITLE = '" & jobtitle & "' " & _ 
               "WHERE MASTERID = '" + Me.lblval_Empid.Text + "'" & _ 
               ";" & _ 
               "INSERT INTO EMPGROUP_TBL(MASTERID, BUSINESS_UNIT, " & _ 
               "DIVISION, SUB_DIVISION, CLASSIFICATION, SUB_CLASSIFICATION) VALUES " & _ 
               "('" & HandleQuote(Me.lblval_Empid.Text) & "', " & _ 
               "'" & businessunit & "' ," & _ 
               "'" & division & "' ," & _ 
               "'" & subdivision & "' ," & _ 
               "'" & classification & "' ," & _ 
               "'" & subclassification & "')") 

       If Not insrtResult Then 
        MessageBox("alert('Error Ocurred While Inserting a Data.')") 
       Else 
        MessageBox("alert('Successfully Added.')") 
       End If 
      Else 
       MessageBox("alert('Data Already Exist.')") 
      End If 
     End If 
    Catch ex As Exception 
     MessageBox("Error Ocurred while Inserting a data") 
     Throw 
    End Try 
End Function 

Я еще не был заполнен код. Я в добавлении, если нет данных, и моя проблема в том, что в ящике сообщений говорится, что данные уже существуют, даже если до сих пор не добавлены данные группы сотрудников. Пожалуйста, помогите мне с этим.

+1

Возможный дубликат [предотвратить дублирование записей в базе данных] (http://stackoverflow.com/questions/40478342/prevent-duplicate-entries-to-database) – e4c5

ответ

0
begin tran 
if exists (select * from table with (updlock,serializable) where key = @key) 
begin 
    update table set ... 
    where key = @key 
end 
else 
begin 
    insert into table (key, ...) 
    values (@key, ...) 
end 
commit tran 

вы можете использовать как этот