จากเดิมผมเขียนอยู่ใน Private Sub Form1_Load ทั้งหมดเลยครับ ทำให้ตัวแปรมั่วมาก งงไปหมดเวลาจะกลับมาแก้ไข
ผมจึงมีแนวคิดว่าจะปรับปรุงทำเป็น Function แทน โดยแยกการ delect ข้อมูล ออกเป็นแต่ละ Function เลย แล้วส่งค่า result ที่ต้องใช้ในเงื่อไขการ select ของ Function ถัดไป
แต่ติดปัญหาตรงที่ผม ผมมือใหม่ ไม่เคยใช้ Function มาก่อน จึงส่งค่าตัวแปรใน Function หนึ่ง ไปอีก Function หนึ่งไม่ได้ ไม่ทราบว่าต้องทำยังไงครับ
ตัวอย่าง Code เช่น (VS2012)
Public Class Form1
Private Function employee()
Dim numArray As Integer
Dim Eid(numArray) As String
Dim name(numArray) As String
Dim Lname(numArray) As String
=== คำสั่ง select และเก็บค่าที่ select ได้ใด้ตัวแปร ===
** ถ้าผมต้องการที่จะส่งค่า Eid(numArray) และ name(numArray) ไปยัง Function department และ Function salary เพื่อเป็นเงื่อไขในการ select ผมต้องทำยังไงครับ**
End Function
Private Function department()
End Function
Private Function salary()
End Function
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Call employee()
End Sub
End Class
ก็จะประมาณนี้ ที่ผมติดไว้น่าจะง่ายต่อการแก้ไขภาพหลัง เพราะถ้าจะแก้อะไร ก็หา Function นั้น แล้วเข้าไปแก้เลย จะได้ไม่ไปพันกับที่อื่น
และถ้ามันทำ Function employee เสร็จ แล้วผมจะให้ไปทำ Function salary จากนั้นก็ไปทำ Function department() สึดท้ายกลับมาทำ Private Sub Form1_Load
ผมเขียนแบบนี้ได้ไหมครับ และจะมีผลเสียอะไรไหม
Private Function employee()
Call salary()
End Function
Private Function department()
Call Form1_Load()
End Function
Private Function salary()
Call department()
End Function
Tag : .NET, Ms SQL Server 2008, VS 2012 (.NET 4.x)
Private Sub GetEmployee()
Dim numArray As Integer
Dim Eid(numArray) As String
Dim name(numArray) As String
Dim Lname(numArray) As String
End Function
Private Function department(numArray As Integer) As String()
Dim _department(numArray) As String
++
++
++
++
return _department
End Function
Private Function salary(numArray As Integer) As String()
Dim _salary(numArray) As String
++
++
++
++
return _salary
End Function
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Call GetEmployee()
End Sub
แค่นี้แหละครับ
แต่อย่างที่พี่วินบอกว่าให้ด็เก็บไว้ใน class แล้วเอามาใช้งานน่าจะดีกว่า
แล้วลองอ่านพวก function,sub ดูครับเวลาใช้งานจะได้ไม่งง
ถ้า metnod ที่ไม่ต้องการ return ก็ควรใช้ sub ดีกว่าครับ
ส่วนตัวไหนต้องการ return ค่อยใช้ functoin.... as .....
ไม่งั้นคนเขียนจะงงเอง(เหมือนตอนนี้ 55555)