| 
 | 
 
  
การเข้าสู่ระบบ (Users Login) ก็เพื่อป้องกันผู้ที่ไม่มีสิทธิ (Unauthorized) ในการใช้งานเข้าถึงโปรแกรม นอกไปจากนี้ยังหมายถึงการจำกัดสิทธิ (Rights) ของผู้ใช้งาน (Users) แต่ละคนด้วย โดยข้อมูลของผู้ใช้งานแต่ละคนก็จะถูกจัดเก็บเอาไว้ในตารางข้อมูล ซึ่งจะมีการเรียกใช้งานอยู่บ่อยครั้ง ดังนั้นเพื่อความสะดวกเราจึงต้องควรนำข้อมูลของผู้ใช้งาน มาจัดเก็บเอาไว้ในตัวแปรเพื่อเรียกใช้งาน ตัวแปรที่แอดมินหมายถึงนี้ก็คือ ตัวแปรแบบโครงสร้าง หรือ Structure  
 
สำหรับโค้ดการเข้าสู่ระบบ (Users Login) ด้วย VB6 คลิ๊กอ่านได้ที่นี่  
 
Structures หรือโครงสร้างข้อมูล คือประเภทข้อมูลประเภทหนึ่งในภาษา Visual Basic ที่สามารถมีสมาชิกภายในตัวของมันได้ ลักษณะโครงสร้างของ Structure นั้นจะคล้ายกับคลาส แต่สิ่งที่แตกต่างกันคือ Structure เป็นตัวแปรแบบ Valued type ในขณะที่คลาสเป็นแบบ Reference type ซึ่งเป็นประเภทข้อมูลที่อ้างถึงที่อยู่ของออบเจ็คที่อยู่ในหน่วยความจำแทน  
 
การประกาศตัวแปรแบบโครงสร้าง  
- Private Structure ชื่อโครงสร้าง
 
 -     ประกาศตัวแปร
 
 -     ประกาศตัวแปร
 
 - End Structure
 
  คัดลอกไปที่คลิปบอร์ด 
เมื่อนำมาใช้งานจริงด้วยการกำหนด UDT (Users-Defined Type)  
-     ' User-defined Types (UDTs)
 
 -     Public Structure USER_INFO
 
 -         ' Primary Key of User
 
 -         Dim USER_USERPK As Integer
 
 -         ' UserID
 
 -         Dim USER_USERID As String
 
 -         ' Password
 
 -         Dim USER_PASSWORD As String
 
 -         ' Administrator is True
 
 -         Dim USER_ISADMIN As Boolean
 
 -         ' Completename
 
 -         Dim USER_COMPLETENAME As String
 
 -         ' Time Stamp
 
 -         Dim USER_TIMELOGIN As Date
 
 -     End Structure
 
  คัดลอกไปที่คลิปบอร์ด 
การเรียกใช้งาน  
-     ' USER_INFO is a template, It can not be stored data.
 
 -     ' Assign a variable to a Data Structure (UDTs)
 
 -     ' Run through the series via CurrUser.
 
 -     Public CurrUser As USER_INFO
 
 -     ' Example:
 
 -     ' CurrUser.USER_USERID ... Keep UserName string
 
 -     ' CurrUser.USER_ISADMIN ... Keep status true/false
 
  คัดลอกไปที่คลิปบอร์ด โครงสร้าง USER_INFO เป็นเพียงต้นแบบ ดังนั้นหากเราต้องการเข้าถึงตัวแปร USER_INFO เราจะต้องเรียกผ่านตัวแปรโครงสร้างอีกที ในที่นี้คือ CurrUser เช่น CurrUser.USER_USERID  
 
มาดูโค้ดส่วนของการทำ Users Login และการเก็บข้อมูลเอาไว้ในตัวแปรแบบโครงสร้าง (frmLogin.vb)  
-     Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click
 
 -         Dim Cmd As New OleDbCommand("SELECT * FROM tblUser WHERE " & _
 
 -                                     " [UserID] = UID AND [Password] = PWD ", Conn)
 
  
-         Dim UserIDParam As New OleDbParameter("UID", Me.txtUserID.Text)
 
 -         Dim PasswordParam As New OleDbParameter("PWD", Me.txtPassword.Text)
 
  
-         Cmd.Parameters.Add(UserIDParam)
 
 -         Cmd.Parameters.Add(PasswordParam)
 
 -         '//
 
 -         If Conn.State = ConnectionState.Closed Then Conn.Open()
 
 -         Dim Reader As OleDbDataReader = Cmd.ExecuteReader()
 
 -         ' Found data
 
 -         If Reader.HasRows Then
 
 -             Do While Reader.Read()
 
 -                 With CurrUser
 
 -                     '/ Read values in each columns.
 
 -                     .USER_USERPK = Reader.GetInt32(0)   '/ Primary Key
 
 -                     .USER_USERID = Reader.GetString(1)  '/ UserID
 
 -                     .USER_PASSWORD = Reader.GetString(2)    '/ Password
 
 -                     .USER_COMPLETENAME = Reader(3)
 
 -                     .USER_TIMELOGIN = Now() '/ Time Stamp
 
 -                     ' True = Admin
 
 -                     .USER_ISADMIN = Reader.GetBoolean(4)
 
 -                 End With
 
 -             Loop
 
 -             ' Show status
 
 -             If CurrUser.USER_ISADMIN Then
 
 -                 MessageBox.Show("You are logged in : Admin")
 
 -             Else
 
 -                 MessageBox.Show("You are logged in : User")
 
 -             End If
 
 -             Reader.Close()
 
 -             Cmd.Connection.Close()
 
 -             Me.Close()
 
 -         Else
 
 -             MessageBox.Show("Enter your User Name, Password is incorrect.")
 
 -             txtUserID.Focus()
 
 -             Reader.Close()
 
 -             Cmd.Connection.Close()
 
 -         End If
 
 -     End Sub
 
  คัดลอกไปที่คลิปบอร์ด นั่นคือเมื่อเราสามารถเข้าสู่ระบบเรียบร้อย ก็จะนำข้อมูลผู้ใช้งานแต่ละคนมาเก็บเอาไว้ในตัวแปรแบบโครงสร้าง เช่น CurrUser.USER_USERID = Reader.GetString(1)  
 
มาดูวิธีการเรียกใช้งานตัวแปรแบบโครงสร้าง (frmMain.vb)  
-     Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click
 
 -         '/ Admin authorized only.
 
 -         If CurrUser.USER_ISADMIN Then
 
 -             '// Select all records.
 
 -             Dim Cmd As New OleDbCommand("SELECT * FROM tblUser", Conn)
 
 -             Cmd.Connection.Open()
 
 -             Dim Reader As OleDbDataReader = Cmd.ExecuteReader()
 
 -             Dim UserInfo As String = ""
 
 -             If Reader.HasRows Then
 
 -                 Do While Reader.Read()
 
 -                     UserInfo = UserInfo & "User ID: " & Reader.GetString(1) & " - Password: " & Reader.GetString(2) & vbCrLf
 
 -                 Loop
 
 -             End If
 
 -             Reader.Close()
 
 -             ' Get info from UDTs Or any other information you want.
 
 -             UserInfo = UserInfo & "Date-Time login : " & CurrUser.USER_TIMELOGIN
 
 -             ' Show detail all users
 
 -             MessageBox.Show(UserInfo)
 
 -         Else
 
 -             ' Normal Users can't view data.
 
 -             MessageBox.Show("For Authorized only.")
 
 -         End If
 
 -     End Sub
 
  คัดลอกไปที่คลิปบอร์ด ในบรรทัดคำสั่ง If CurrUser.USER_ISADMIN Then ก็คือการอ้างถึงค่า (Value) ที่อยู่ในตัวแปรแบบโครงสร้าง โดยที่เราไม่ต้องไปเรียกมาจากตารางข้อมูลใหม่ให้เสียเวลานั่นเอง  
 
ดาวน์โหลดโค้ดต้นฉบับแบบเต็ม VB.NET (2010) ได้ที่นี่ 
 
 |   
ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง
คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน  
 
x
 
 
 
 
 |