vb.net
  • visual-studio-2010
  • insert
  • oledb
  • ms-access-2003
  • 2014-03-31 2 views 0 likes 
    0

    아래에서 볼 수 있듯이 내 'sql'문자열이 너무 길어서 어떻게이 인서트를 구성 할 수 있습니까? 끈? 감사합니다. 일부 속성 (세터 & 게터를) GuestDataClass 내 데이터를 mdb에 게시하는 데 너무 많은 값이 있기 때문에 (VB 2010 액세스 DB 2003)

  • 목록 :

    Try 
         conn.Open() 
         sql = "SELECT * FROM guests WHERE folio='" & folionum_txtfield.Text & "' AND fname = '" & Fname_txtfield.Text & "'" 
         Dim sqlCom As New System.Data.OleDb.OleDbCommand(sql, conn) 
         Dim sqlRead As System.Data.OleDb.OleDbDataReader = sqlCom.ExecuteReader() 
    
         If Not sqlRead.HasRows Then 
          sql = "INSERT INTO guests values (" & folionum & "," & lname & "," & fname & "," & address & "," & lname & "," & country & "," & company & "," & idtype & "," & otherID & "," & idtype & "," & otherID & "," & idnum & "," & otherID & "," & vehicle & "," & vmodel & "," & pnum & "," & rooomnum & "," & datechckin & "," & datechckout & "," & rmtype & numdays & "," & numadults & "," & numchild & "," & notes) 
         End If 
    
        Catch ex As Exception 
    
  • +0

    사용 매개 변수는 SQL 주입 공격을 방지 할뿐만 아니라, 그러나 코드를 더 읽기 쉽게 만들 것이다. – Plutonix

    +0

    왜 너무 길다고합니까? 나는 줄의 길이가 1000 인 문자열을 가지고있다. 그것은 당신에게 오류를주고 있습니까? DB 오류 또는 VB 오류입니까? 그것은 나에게 "조직 된"것처럼 보입니다. 데이터를 입력하려면 어떻게해야합니까? – user2721815

    +0

    당신은 속성을위한 클래스를 만들고 이것의 새로운 인스턴스를 만들 수 있습니다 ... 그러면 생성자에서이 클래스를 저장 루틴에 전달할 수 있습니다 ... – Codexer

    답변

    0

    여기 당신이 필요로하는 것이 무엇 acheive하기 위해 수행 할 수있는 몇 가지 간단한 단계 ...

    1. 이 예에 대한 DataClass 만들기입니다.
    2. 이 클래스의 새 인스턴스를 만들고 속성을 설정하십시오.
    3. 함수를 만들고 함수에 새 인스턴스를 전달하십시오.
    4. 그런 다음 속성을 사용하여 필요에 따라 저장하거나 업데이트 할 수 있습니다.

    이렇게하면 훨씬 작지만 조직적으로 변하지 않을 것입니다.

    Public Class GuestDataClass 'This would be your new class for your properties... 
    
    #Region "Variables" 'Add your variables here' 
        Private strFirstName As String = String.Empty 
        Private strLastName As String = String.Empty 
    #End Region 
    
    #Region "Properties" 'Add some properties' 
    
    Public Property FirstName() As String 
        Get 
         Return strFirstName 
        End Get 
        Set(ByVal value As String) 
         strFirstName = value 
        End Set 
    End Property 
    
    Public Property LastName() As String 
        Get 
         Return strLastName 
        End Get 
        Set(ByVal value As String) 
         strLastName = value 
        End Set 
    End Property 
    
    #End Region 
    
    #Region "Methods" 
    
    'Inserts new guest' 
    Public Shared Function SaveGuest(ByVal oGuest As GuestDataClass) As Boolean 
    
        'Use your properties for the save routine here... just an example... 
        'oGuest.FirstName 
        'oGuest.LastName 
    
        Return True 
    End Function 
    
    #End Region 
    
    End Class 
    

    그런 다음 당신은 그런으로 사용할 수

    다음은 간단한 예입니다 ... ...

    Public Class Form1 
    
    Private pData As GuestDataClass 'Set a variable in your class you can use.. 
    
    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    
        'Set this variable of your data class... 
        pData = New GuestDataClass() 
    
        'Set our properties... 
        pData.FirstName = "Bobby" 
        pData.LastName = "Walters" 
    
        'Save the data... 
        If GuestDataClass.SaveGuest(pData) Then 
         MessageBox.Show("Saved!") 
        Else 
         MessageBox.Show("Error!") 
        End If 
    
    
    End Sub 
    End Class 
    

     관련 문제

    • 관련 문제 없음^_^