ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 5689|ตอบกลับ: 1

[VB.NET] การทำระบบเข้าสู่การใช้งาน (Users Login) ด้วยการใช้โครงสร้าง หรือ Structure

[คัดลอกลิงก์]

2

กระทู้

7

โพสต์

467

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
467


การเข้าสู่ระบบ (Users Login) ก็เพื่อป้องกันผู้ที่ไม่มีสิทธิ (Unauthorized) ในการใช้งานเข้าถึงโปรแกรม นอกไปจากนี้ยังหมายถึงการจำกัดสิทธิ (Rights) ของผู้ใช้งาน (Users) แต่ละคนด้วย โดยข้อมูลของผู้ใช้งานแต่ละคนก็จะถูกจัดเก็บเอาไว้ในตารางข้อมูล ซึ่งจะมีการเรียกใช้งานอยู่บ่อยครั้ง ดังนั้นเพื่อความสะดวกเราจึงต้องควรนำข้อมูลของผู้ใช้งาน มาจัดเก็บเอาไว้ในตัวแปรเพื่อเรียกใช้งาน ตัวแปรที่แอดมินหมายถึงนี้ก็คือ ตัวแปรแบบโครงสร้าง หรือ Structure

สำหรับโค้ดการเข้าสู่ระบบ (Users Login) ด้วย VB6 คลิ๊กอ่านได้ที่นี่

Structures หรือโครงสร้างข้อมูล คือประเภทข้อมูลประเภทหนึ่งในภาษา Visual Basic ที่สามารถมีสมาชิกภายในตัวของมันได้ ลักษณะโครงสร้างของ Structure นั้นจะคล้ายกับคลาส แต่สิ่งที่แตกต่างกันคือ Structure เป็นตัวแปรแบบ Valued type ในขณะที่คลาสเป็นแบบ Reference type ซึ่งเป็นประเภทข้อมูลที่อ้างถึงที่อยู่ของออบเจ็คที่อยู่ในหน่วยความจำแทน

การประกาศตัวแปรแบบโครงสร้าง
  1. Private Structure ชื่อโครงสร้าง
  2.     ประกาศตัวแปร
  3.     ประกาศตัวแปร
  4. End Structure
คัดลอกไปที่คลิปบอร์ด

เมื่อนำมาใช้งานจริงด้วยการกำหนด UDT (Users-Defined Type)
  1.     ' User-defined Types (UDTs)
  2.     Public Structure USER_INFO
  3.         ' Primary Key of User
  4.         Dim USER_USERPK As Integer
  5.         ' UserID
  6.         Dim USER_USERID As String
  7.         ' Password
  8.         Dim USER_PASSWORD As String
  9.         ' Administrator is True
  10.         Dim USER_ISADMIN As Boolean
  11.         ' Completename
  12.         Dim USER_COMPLETENAME As String
  13.         ' Time Stamp
  14.         Dim USER_TIMELOGIN As Date
  15.     End Structure
คัดลอกไปที่คลิปบอร์ด

การเรียกใช้งาน
  1.     ' USER_INFO is a template, It can not be stored data.
  2.     ' Assign a variable to a Data Structure (UDTs)
  3.     ' Run through the series via CurrUser.
  4.     Public CurrUser As USER_INFO
  5.     ' Example:
  6.     ' CurrUser.USER_USERID ... Keep UserName string
  7.     ' CurrUser.USER_ISADMIN ... Keep status true/false
คัดลอกไปที่คลิปบอร์ด
โครงสร้าง USER_INFO เป็นเพียงต้นแบบ ดังนั้นหากเราต้องการเข้าถึงตัวแปร USER_INFO เราจะต้องเรียกผ่านตัวแปรโครงสร้างอีกที ในที่นี้คือ CurrUser เช่น CurrUser.USER_USERID

มาดูโค้ดส่วนของการทำ Users Login และการเก็บข้อมูลเอาไว้ในตัวแปรแบบโครงสร้าง (frmLogin.vb)
  1.     Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click
  2.         Dim Cmd As New OleDbCommand("SELECT * FROM tblUser WHERE " & _
  3.                                     " [UserID] = UID AND [Password] = PWD ", Conn)

  4.         Dim UserIDParam As New OleDbParameter("UID", Me.txtUserID.Text)
  5.         Dim PasswordParam As New OleDbParameter("PWD", Me.txtPassword.Text)

  6.         Cmd.Parameters.Add(UserIDParam)
  7.         Cmd.Parameters.Add(PasswordParam)
  8.         '//
  9.         If Conn.State = ConnectionState.Closed Then Conn.Open()
  10.         Dim Reader As OleDbDataReader = Cmd.ExecuteReader()
  11.         ' Found data
  12.         If Reader.HasRows Then
  13.             Do While Reader.Read()
  14.                 With CurrUser
  15.                     '/ Read values in each columns.
  16.                     .USER_USERPK = Reader.GetInt32(0)   '/ Primary Key
  17.                     .USER_USERID = Reader.GetString(1)  '/ UserID
  18.                     .USER_PASSWORD = Reader.GetString(2)    '/ Password
  19.                     .USER_COMPLETENAME = Reader(3)
  20.                     .USER_TIMELOGIN = Now() '/ Time Stamp
  21.                     ' True = Admin
  22.                     .USER_ISADMIN = Reader.GetBoolean(4)
  23.                 End With
  24.             Loop
  25.             ' Show status
  26.             If CurrUser.USER_ISADMIN Then
  27.                 MessageBox.Show("You are logged in : Admin")
  28.             Else
  29.                 MessageBox.Show("You are logged in : User")
  30.             End If
  31.             Reader.Close()
  32.             Cmd.Connection.Close()
  33.             Me.Close()
  34.         Else
  35.             MessageBox.Show("Enter your User Name, Password is incorrect.")
  36.             txtUserID.Focus()
  37.             Reader.Close()
  38.             Cmd.Connection.Close()
  39.         End If
  40.     End Sub
คัดลอกไปที่คลิปบอร์ด
นั่นคือเมื่อเราสามารถเข้าสู่ระบบเรียบร้อย ก็จะนำข้อมูลผู้ใช้งานแต่ละคนมาเก็บเอาไว้ในตัวแปรแบบโครงสร้าง เช่น CurrUser.USER_USERID = Reader.GetString(1)

มาดูวิธีการเรียกใช้งานตัวแปรแบบโครงสร้าง (frmMain.vb)
  1.     Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click
  2.         '/ Admin authorized only.
  3.         If CurrUser.USER_ISADMIN Then
  4.             '// Select all records.
  5.             Dim Cmd As New OleDbCommand("SELECT * FROM tblUser", Conn)
  6.             Cmd.Connection.Open()
  7.             Dim Reader As OleDbDataReader = Cmd.ExecuteReader()
  8.             Dim UserInfo As String = ""
  9.             If Reader.HasRows Then
  10.                 Do While Reader.Read()
  11.                     UserInfo = UserInfo & "User ID: " & Reader.GetString(1) & " - Password: " & Reader.GetString(2) & vbCrLf
  12.                 Loop
  13.             End If
  14.             Reader.Close()
  15.             ' Get info from UDTs Or any other information you want.
  16.             UserInfo = UserInfo & "Date-Time login : " & CurrUser.USER_TIMELOGIN
  17.             ' Show detail all users
  18.             MessageBox.Show(UserInfo)
  19.         Else
  20.             ' Normal Users can't view data.
  21.             MessageBox.Show("For Authorized only.")
  22.         End If
  23.     End Sub
คัดลอกไปที่คลิปบอร์ด
ในบรรทัดคำสั่ง If CurrUser.USER_ISADMIN Then ก็คือการอ้างถึงค่า (Value) ที่อยู่ในตัวแปรแบบโครงสร้าง โดยที่เราไม่ต้องไปเรียกมาจากตารางข้อมูลใหม่ให้เสียเวลานั่นเอง

ดาวน์โหลดโค้ดต้นฉบับแบบเต็ม VB.NET (2010) ได้ที่นี่

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x

0

กระทู้

33

โพสต์

372

เครดิต

Full Member

Rank: 3Rank: 3

เครดิต
372
โพสต์ 2022-2-23 23:52:47 | ดูโพสต์ทั้งหมด

ขอบคุณคัพ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-4-20 11:41 , Processed in 0.427610 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้