2013-05-02 1 views
0

내 vb.net 양식 필드의 데이터를 자동 증가 고유 ID가있는 SQL 테이블로 성공적으로 커밋했습니다. 내가 가진 문제는 동일한 필드 이름을 가진 여러 양식 필드가 있다는 것입니다. 예를 들어, 내 데이터베이스 내 필드는 TextBox1, TextBox2, TextBox3 또는 TextBox4의 데이터를 양식에 적용합니다. 이것이 가능한가? SQL Server의 테이블에양식의 선택된 값에서 선택하여 DB 테이블의 하나의 열 채우기

  1. 커밋 값을 다음과 같이

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
        Using message As New MailMessage() 
         Dim iReturn As Boolean 
    
         Using con As New SqlConnection("Server=SGI-NOT-TTID01;Database=Commission;uid=****;pwd=******") 
          Using com As New SqlCommand() 
           With com 
            .CommandText = "INSERT INTO InputTable VALUES (@UniqueRequestNumber, @BusinessUnit, @ReasonCode, @Originator, @OnBehalfofName, @OnBehalfofEmail, @SalesTeam_CS, @SalesTeam_MISDBM, @DateEffectiveFrom, @DateEffectiveTo, @CustomerClientName, @CustomerAccNum, @MovingTo, @JustificationComments, @NewBusOrRenewal, @OthersImpacted, @ReasonCode2, @Target, @TargetPeriod, @ProposedScheme, @NewOTC, @ExistingRole, @Amount, @CustomerImapcted, @CurrentOTC, @PoundsInPocketEst, @NewRole) " 
            .Connection = con 
            .CommandType = CommandType.StoredProcedure 
            .CommandText = "AddUniqueRequestNumberWithOutput" 
            .Parameters.AddWithValue("@UniqueRequestNumber", ParameterDirection.Output) 
            .Parameters.AddWithValue("@BusinessUnit", ComboBox1.Text) 
            .Parameters.AddWithValue("@ReasonCode", ComboBox4.Text) 
            .Parameters.AddWithValue("@Originator", TextBox1.Text) 
            .Parameters.AddWithValue("@OnBehalfofName", TextBox2.Text) 
            .Parameters.AddWithValue("@OnBehalfofEmail", TextBox3.Text) 
            .Parameters.AddWithValue("@SalesTeam_CS", ComboBox2.Text) 
            .Parameters.AddWithValue("@SalesTeam_MISDBM", ComboBox3.Text) 
            .Parameters.AddWithValue("@DateEffectiveFrom", DateTimePicker1.Text) 
            .Parameters.AddWithValue("@DateEffectiveTo", DateTimePicker2.Text) 
            .Parameters.AddWithValue("@CustomerClientName", TextBox4.Text) 
            .Parameters.AddWithValue("@CustomerAccNum", TextBox5.Text) 
            .Parameters.AddWithValue("@MovingTo", TextBox6.Text) 
            .Parameters.AddWithValue("@JustificationComments", TextBox7.Text) 
            .Parameters.AddWithValue("@NewBusOrRenewal", ComboBox6.Text) 
            .Parameters.AddWithValue("@OthersImpacted", TextBox13.Text) 
            .Parameters.AddWithValue("@ReasonCode2", ComboBox5.Text) 
            .Parameters.AddWithValue("@Target", TextBox5.Text) 
            .Parameters.AddWithValue("@TargetPeriod", ComboBox7.Text) 
            .Parameters.AddWithValue("@ProposedScheme", TextBox24.Text) 
            .Parameters.AddWithValue("@NewOTC", TextBox17.Text) 
            .Parameters.AddWithValue("@ExistingRole", TextBox19.Text) 
            .Parameters.AddWithValue("@Amount", TextBox8.Text) 
            .Parameters.AddWithValue("@CustomerImpacted", TextBox12.Text) 
            .Parameters.AddWithValue("@CurrentOTC", TextBox16.Text) 
            .Parameters.AddWithValue("@PoundsInPocketEst", TextBox10.Text) 
            .Parameters.AddWithValue("@NewRole", TextBox20.Text) 
    
           End With 
           Try 
            con.Open() 
            com.ExecuteNonQuery() 
            iReturn = True 
           Catch ex As SqlException 
            MsgBox(ex.Message.ToString) 
            iReturn = False 
           Finally 
            con.Close() 
           End Try 
    
            'set to the from, to and subject fields 
            message.From = (New MailAddress(TextBox3.Text.ToString())) 
            message.[To].Add(New MailAddress("[email protected]")) 
            message.Subject = "Request Number" 
    
            If Not attachmentList Is Nothing Then 
            For Each attachment As System.Net.Mail.Attachment In attachmentList 
              message.Attachments.Add(attachment) 
             Next 
            End If 
    
    
    
            'display submitted box 
           MessageBox.Show("Your request has been submitted!", "Congratulations!") 
            'close form 
            Me.Close() 
    
            Dim client As New SmtpClient() 
            client.Host = "mailhost" 
            client.Send(message) 
    
    
    
    
    
    
          End Using 
         End Using 
    
    
    
        End Using 
    
        Return 
    End Sub 
    

    그래서이 함수 뒤에 논리입니다.

  2. 전자 메일을 보냅니다 (선택 사항 인 첨부 파일 포함).
+0

그래서 데이터베이스 필드에 둘 이상의 텍스트 상자의 값을 저장 하시겠습니까? – Steve

+0

예. 아니지만 동시에. 양식에 입력 된 텍스트 상자에 따라 다릅니다. – jamman

답변

0

텍스트 상자를 검색하고 텍스트가있는 첫 번째 내용을 반환하는 전용 함수를 작성할 수 있습니다.

Private Function SearchBehalfText() As String 
    Dim behalfOf = TextBox3.Text.Trim 
    if behalfOf.Length = 0 then 'textbox3 is empty, check the next one ' 
     behalfOf = TextBox4.Text.Trim 
     if behalfOf.Length = 0 then 'textbox4 is empty, check the next one ' 
      ...... mode test here if you have more textboxes, stop when all the textboxes are verified for empty 
     End If 
    End If 
    return behalfOf 
End Function 

이제 매개 변수를 생성하는 코드는 내가

.Parameters.AddWithValue("@OnBehalfofEmail", SearchBehalfText()) 

으로 조금 약한이 시나리오 찾을 작성할 수 있습니다. 해당 텍스트 상자를 복원 할 수 없습니다이 정보를

+0

스티브 고마워. 그러나 매개 변수를 작성하는 코드는 양식을 제출하는 버튼 클릭 인 다른 개인 함수 내에 있으므로이 방법은 작동하지 않습니다. 그게 너에게 의미가 있다면 ... .... – jamman

+0

글 상자에서 값을 어떻게 가져올 계획인지 어떻게 이해할 수 없습니까? 매개 변수 값을 설정할 때 사용할 텍스트 상자 내용을 선택해야합니다. 그들이 사용할 수없는 경우 여기에 그 값을 전달해야합니다. 아마도 위의 코드와 컨텍스트에 대한 설명이 도움이 될 것입니다. – Steve

+0

Ok Steve, 조금 더 명확 해지기를 바랍니다. 내 질문을 편집했습니다. 내 복잡한 기능에 당신의 소리, 논리적 인 설명을 추가하는 방법을 볼 수 없습니다. 감사. – jamman

관련 문제