Professional Documents
Culture Documents
Vs 2010 Manual
Vs 2010 Manual
บทที่ 1
พื้นฐานของโปรแกรม Visual Studio 2010
Basic of Visual Studio .NET 2010
Microsoft Visual Studio .NET 2010 เปนเครื่องมือสําหรับการพัฒนาโปรแกรมและเว็บไซตที่มี
ประสิทธิภาพมาก มีเครื่องมืออํานวยความสะดวกมากมายรวมทั้งสถาปตยกรรมที่ทาง Microsoft ได
ออกแบบมานั้นถือวา เพื่อความมีเสถียรภาพและความยืดหยุน สูงมาก
ใน Visual Studio .NET 2010 ประกอบดวยเครื่องมือตางๆ ดังนี้
- Visual Basic .NET
- Visual C++ .NET
- Visual VB .NET
- Visual J# .NET
- ASP .NET
ทั้งหมดเปนเครื่องมือการพัฒนาภายใตสถาปตยกรรม .NET Framework ซึ่งก็คือกรอบการทํางาน
ของการเขียนโปรแกรมที่ Microsoft คิดขึ้น เพื่อรองรับการติดตอสื่อสาร เพื่อแลกเปลี่ยนขอมูลระหวางกัน
หรือแลกเปลี่ยนขอมูลระหวาง Platform ใหมีความสมบูรณยิ่งขึ้นโดยอาศัยภาษา XML (Extensible
Markup Language) ที่ทําหนาที่เปนตัวกลางในการแลกเปลี่ยนขอมูลระหวาง Platform ที่ตางกันได
สวนสภาพแวดลอมจะแบงออกเปนสวนหลักๆ 4 สวนดังนี้
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 2
ตัวแปลภาษา CLR
Binary Code
จากรูป จะเห็นไดวา เมื่อเกิดการแปลโคดที่มาจากภาษาใดๆ ก็ตามใน .NET จะอาศัย CLR ทํา
หนาที่แปลออกมาเปนภาษากลางที่เรียกวา IL (Intermediate Language) กอน เมื่อไดโคดของ IL มาแลว
ถาตองการแปลออกมาเปนภาษาเครื่อง ก็จะอาศัยหลักการทํางานของเครื่องจักรเสมือน (Virtual Machine)
แปลภาษา IL อีกครั้งหนึ่ง โดยอาศัย Compiler JIT (Just-In-Time)
จะเห็นวาดวยหลักการทํางานของตัวแปรภาษา CLR ดังกลาว สามารถตีความไดวา ในยุค .NET
Microsoft ไดพฒ ั นาใหทุกๆ ภาษาเขาสูจ ุดศูนยกลาง กลาวคือ ไมวา จะพัฒนา Application ดวยภาษาใดก็
ตาม ทายทีส่ ุดแลว ก็จะไดโคด IL ชุดเดียวกันทีพ่ รอมจะแปลเปนภาษาเครื่องไดทนั ที ซึ่งขอดีก็คือ สามารถ
จะใชภาษาใดก็ไดภายใตเทคโนโลยี .NET ในการพัฒนา ก็จะไดผลลัพธเหมือนกัน หรืออาจจะสราง
Application เดียวดวยหลายๆ ภาษาก็ได ทําใหยืดหยุนตอการพัฒนา Application เปนทีม
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 3
Standard Control
Standard Control คือ Control มาตรฐานที่ Visual Studio จัดมาให ซึ่งเปน Control พื้นฐานที่
ผูออกแบบสามารถเลือก Control ตัวใด ๆ วาดลงฟอรมได ซึ่งจัดไวอยูใน Tool Box นั่นเอง
หมวดการแสดง Properties
Control
1. Alphabetic คือแสดงเรี ยง
ตามตัวอักษร ยกเว้ น
Name
2. Categorized คือแสดงตาม
ค่าของ Properties
Label
Label เปน Control ที่ใชสําหรับแสดงผลขอความตาง ๆ เพื่อสื่อกับผูใชงานโปรแกรมไดงายขึ้น
จะมี Properties ที่คลาย ๆ กันกับ Control ตัวอื่น ๆ ในกลุม ของการแสดงลักษณะของ Control ซึ่งไดแก
Appearance , Backcolor
ชื่อ Properties คาของ Properties
Name ใชกําหนดชื่อใหกับ Label
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 8
CommandButton
เปน Control ที่กําหนดใหผูใชคลิกเลือกเพื่อจะใหโปรแกรมทํางานตามที่ตองการ หรือเพื่อ
ดําเนินการอยางใดอยางหนึ่ง Command Button เปนมาตรฐานของการเขียนโปรแกรมบน Windows
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 9
Option Button
เปน Control ที่ใชสาํ หรับใหผูใชสามารถเลือกไดเพียงอยางเดียว ไมวาจะมีกี่ทางเลือกก็ตาม โดยมี
Properties ที่นาสนใจดังนี้
ชื่อ Properties คาของ Properties
Caption ใชกําหนดขอความ เพื่อใหผูใชไดทราบ
Style ใชเลือกรูปแบบการแสดง ซึง่ มี 2 แบบคือ
0 – Standard เปนลักษณะปุมทั่ว ๆ ไป
1 – Graphic สามารถกําหนดสีพื้นหลัง และ ใสรูปภาพไดและจะมีลักษณะเหมือน
CommandButton แตโดยสวนใหญไมแนะนําใหใชนะ มันไมเปนมาตรฐาน
Value เปน Properties ที่ใชทดสอบการเลือก ซึ่งมีอยู 2 คา คือ
True เมื่อโดยคลิ๊กเลือก
False เมื่อไมไดเลือก
Check Box
เปน Control ที่ใชสําหรับใหผูใชเลือกเหมือนกับ OptionButton แตจะสามารถเลือกไดหลายทางเลือก
Properties ที่นาสนใจมีดงั นี้
ชื่อ Properties คาของ Properties
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 10
Combo Box
เปน Control ที่จะสามารถบรรจุรายการเพื่อใหผูใชเลือกรายการที่บรรจุอยูใน Combo Box ได
ซึ่งจะสามารถแสดงรายการไดเพียงหนึ่งบรรทัดเทานัน้ ซึ่งจะมีลักษณะเหมือน Text Box ในบางสวน ใน
กระบวนการออกแบบนัน้ จะสามารถขยายไดเพียงดานกวางเทานั้น ดานสูงจะไมสามารถขยายได
Properties ที่นาสนใจมีดงั นี้
ชื่อ Properties คาของ Properties
items ใชบรรจุรายการที่ตองการใหผูใชเลือก ซึ่งลักษณะการบรรจุรายการนั้นก็สามารถ
คลิ๊กที่ Properties List จากนั้นก็จะมีกรอบเล็ก ๆ เพื่อที่จะใหเราพิมพรายการที่
ตองการบรรจุเขาไป ซึ่งจะมองเปน 1 บรรทัด / 1 รายการ
Lock ไมอนุญาตใหผูใชคลิ๊กเลือกรายการได
Sort อนุญาตใหมีการเรียงลําดับรายการหรือไม ซึ่งจะเรียงจากนอยไปมากเสมอ
Text ใชแสดงขอความ เมื่อทําการเปดฟอรมและ Control พรอมที่จะทํางาน
List Box
เปน Control ที่มีจุดประสงคเดียวกันกับ Combo Box เพียงแตตางกันแค รูปแบบการแสดงผลตอ
ผูใช ซึ่ง List Box จะสามารถแสดงไดหลายบรรทัด แตจะสามารถเลือกไดเพียง 1 รายการเชนกัน ซึ่งถา
หากมีรายการขอความที่มีความยาวหรือจํานวนมาก List Box นี้จะสราง Scroll Bar มาใหโดยอัตโนมัติ
Properties ที่นาสนใจมีดงั นี้
Properties รวม
สําหรับหัวขอนี้ไดแยกมา เนื่องจากวามี Properties บางจําพวก ที่มีในทุก ๆ Control ผูแตงก็เลย
เอามาอธิบายไวสวนทายเลย เพื่อใหดูงายมากขึ้นนัน่ เองนะครับ ดังนี้ครับผม
ชื่อ Properties คาของ Properties
Name ใชกําหนดชื่อใหกับ Control ซึ่งเปนสวนสําคัญและจําเปนอยางยิ่ง เหมือนกับการ
ประกาศตัวแปรนั่นแหละ ซึ่งจะตองเปนไปตามกฎการตั้งชื่อ และมีความยาวไดไมเกิน
255 ตัวอักษร หลักสําคัญ ตองตั้งชื่อ Control ใหตรงกับงาน เนื่องจากวา ชื่อ
Control เหลานี้ เราจะนําไปสูการเขียนโปรแกรม
Appearance เปนโหมดของการแสดงผลหนาตาของ Control ตัวนั้น ซึง่ แตละ Control ก็จะมีไม
เทากัน ใหทดสอบดูได เนื่องจากวาเราจะเห็นผลการเปลี่ยนแปลงในขณะที่เรา
เปลี่ยนคาในหนาตาง Properties เลย
Backcolor ใชกําหนดสีพนื้ หลัง โดยก็ขึ้นอยูกับชนิดของ Control นั้น ๆ
DataField, เปนกลุมของ Properties ที่ใชเชื่อมกับฐานขอมูล ซึ่งจะมีรายละเอียดใน หลักสูตร
DataMember, Visual Basic with Database (มีในบาง Control เทานั้นนะครับ)
DataSource,
DataFormat
Enabled ใชกําหนดให Control นั้นสามารถใชงานไดหรือไม
True - ใชงานตามปกติ
False – ใชงานไมได แตแสดงที่ฟอรม
Font ใชกําหนดชนิดและขนาดของตัวอักษร
ForeColor ใชกําหนดสีของตัวอักษร
Height , Width กําหนดความกวางและความสูงของ Control ตัวนั้น ซึง่ ตัวเลขจะเปลี่ยนตามที่เราวาด
Control ลงบนฟอรม หรือ สามารถระบุตัวเลขไดเลย
MouseIcon คือการแสดงรูปเมาส เมื่อเลื่อนเมาสไปสวนใดสวนหนึ่งของฟอรม โดยจะใชคูกันกับ
Properties MousePointer
MousePointer คือการแสดงรูปเมาส ที่ Visual Basic จัดมาให โดยจะมีอยู 16 คา (0-15) และ คา99
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 12
บทที่ 2
การเขียนคําสั่งภาษา VB.NET
กฎของการตั้งชื่อ
การตั้งชื่อในภาษา VB ใชสําหรับการตั้งชื่อใด เชน ชื่อตัวแปร ชื่อคลาส ชื่อ Method โดยจะตองมี
กฎเกณฑดังตอไปนี้
1. ไมขึ้นตนดวยตัวเลขหรืออักขระพิเศษ
2. ไมมีอักขระพิเศษ
3. ไมมีชองวาง
4. สามารถใชตัวอักษรดังตอไปนี้ (a – z, A – Z , 0-9 _ (ขีดลาง) ) เทานัน้
5. อักษรตัวพิมพเล็ก และ ตัวพิมพใหญ VB ถือวาเปนตัวเดียวกัน เชน a, A
6. ไมซ้ํากับคําสงวน (Reserve word )ของภาษา VB
7. สามารถใชอักขระได 255 ตัวอักษรตอการตั้งชื่อ 1 ชื่อ
ตัวอยางที่ถูกตอง
Hello, Test, Exam, Total, Net, SPC, V1, V3, Balance_score, MidtermScore
ตัวอยางที่ไมถูกตอง
1Hello, Test%, E*xam, Balance score, MidtermScore”]
ตัวอยางคําสงวนของ VB
คําเหลานี้จะไมสามารถนําไปตั้งชื่อได
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 14
ตัวแปร ( Variable)
ตัวแปรคือพื้นที่ในหนวยความจําหลักที่ผูเขียนโปรแกรมสามารถจองไวสําหรับเก็บผลลัพธที่เกิดจาก
โปรแกรม ทุกภาษาที่ใชเขียนโปรแกรมจะตองมีการใชตัวแปรนะครับ ซึง่ ใน VB มีรูปแบบการประกาศตัว
แปรดังนี้
ตัวแปรตัวเดียว
Dim As ชนิดตัวแปร
ตัวแปรหลายตัวที่เปนชนิดเดียวกัน
Dim 1, 2, 3, ... As ชนิดตัวแปร
เมื่อเราไดกําหนดระบบปฏิบัติการจะทําการเก็บพื้นที่ในหนวยความจําหลักไวสําหรับตัวแปรที่เรา
กําหนดขึ้น ไมมีใครที่จะสามารถเขาไปใชงานพืน้ ที่หนวยความจําในสวนของเราได ซึ่งระบบปฏิบัติการจะจอง
พื้นที่หนวยความจําไวเทาใดนั้นก็ขึ้นอยูกับชนิดของตัวแปรนั้น โดยชนิดตัวแปรและขนาดของชนิดนัน้ มีดังนี้
1. ตัวเลขจํานวนเต็ม ไดแก byte, short, int ,long
2. เลขจํานวนจริง ไดแก float , double
3. ตัวอักษร ไดแก char, String
4. คาตรรกะ ไดแก boolean
สําหรับชนิดตาง ๆ นัน้ จะมีขนาดของขอมูลที่ตางกันดังรูป
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 15
การกําหนดตัวแปร มี 2 แบบ
1. กําหนดตัวแปรแบบวาง
ตัวอยาง Dim number As Integer number
จากตัวอยางนี้ก็จะไดตัวแปรวาง ๆ 1 ตัวชื่อ number
2. กําหนดตัวแบบกําหนดคาเริ่มตนดวย number
ตัวอยาง Dim number As integer=7; 7 name
Dim name As Char =’C’; money
C
Dim money As Float=150.25; 150.25
s
String s=”Pitchaya”;
Pitchaya
การใสหมายเหตุ
บางครั้งการเขียนโปรแกรม ผูเขียนเองก็ตองใสหมายเหตุไปดวย ซึ่งหมายเหตุนี้จะไมใชคําสัง่ ของ
ภาษา และ ตัว Compiler เองก็จะไมนาํ ไป Compile มีรูปแบบดังนี้
‘ บรรทัดหมายเหตุ
การเขียนโปรแกรม
การเขียนโปรแกรมภาษา Visual Basic นับไดวาเปนภาษาที่มีความงายที่สุดในบรรดาทุกภาษาที่บรรจุอยูใน
Visual Studio เนื่องจากวามีรูปแบบที่ไมยาก ไมมีขอกําหนดหรือกฎเกณฑอะไรมากมายนัก และมีเสนแบงระหวาง
Event เพื่อใหเห็นงายอีกดวย
สําหรับการเขียนโปรแกรม (Code) ใหกับโปรเจ็กของ Visual Basic สามารถแบงได 2 ประเภท
ใหญ ๆ คือ 1. การเขียนโปรแกรมกับ Control และ 2. การเขียนโปรแกรมดวยคําสั่งตาง ๆ ของ Visual
Basic ซึ่งกอนอื่นก็ตองมาทําความคุนเคยกับหนาตาง Code กอนนะครับ
วิธีการเรียก Code มีหลายวิธีดว ยกันครับ แตจะขอแนะนํา 2 วิธีดังนี้
1. Double Click ที่ Control ใด ๆ ก็ไดรวมทั้งฟอรมดวย
2. คลิ๊กขวาเลือกชื่อฟอรมที่ Project Explorer แลวเลือกเมนู View Code
1. ชื่อ Control หมายถึง เปน Combo Box ที่รวมรายชื่อ Control ทุกตัวที่เราวาดลงบนฟอรม โดย
จะเอา ชื่อที่มาแสดงจาก Properties Name ของทุก Control ยกเวน ฟอรม อันเดียวเทานั้นที่ยงั คง
ใชคําวา Form
2. ชื่อ Event กอนอื่น ตองมาทําความเขาใจคําวา “Event” กอนนะครับ
Event ถาแปลเปนภาษาไทยก็แปลวา “เหตุการณ” คือเหตุการณหนึ่ง ๆ ที่เกิดขึ้นกับ Control ซึ่ง
ทุก Control จะตองมีเหตุการณ เชน เหตุการณ Click ของ Command Button หมายถึง เมื่อผูใช
คลิ๊กที่ปุม หรือ เหตุการณ Load ของ Form หมายถึง เมื่อฟอรมถูกโหลดขึ้นมา เปนตน ซึ่งแต
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 17
คุณสมบัติสวนอื่นก็สามารถกําหนดไดเชนเดียวกันครับ ซึ่งสุดทายแลวเราก็จะไดตัวอยางโคดโปรแกรมดังรูป
ผลลัพธเมื่อรันโปรแกรม
รู ป
ปุ่ ม
รูปแบบคําสั่ง
MessageBox.Show("ข้ อความ","ข้ อวามบน Titlebar", MessageBoxIcon.รู ป, MessageBoxButtons.ปุ่ ม);
ตัวอยาง
เมื่อคลิ๊กที่ปุม ก็จะใหแสดง Message Box ขึ้นมาดังรูป
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 19
ซึ่งโคดโปรแกรมก็แสดงไดดังนี้
MessageBox.Show("Hello","MessageTitlebar”, MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
การเขียนโปรแกรมดวยคําสั่งตัดสินใจ
ใน VB มีหลายคําสั่ง แตจะยกมาเพียง 2 คําสั่งไดแก
- if…else
- select…case
คําสั่ง if…else
รูปแบบคําสั่ง
รูปแบบที่ 1 (เงื่อนไขเดียว)
if then
......( )
รูปแบบที่ 2 (2 เงื่อนไข)
if then
...... ( )
else
.....( )
ตัวอยาง
เปนโปรแกรมที่ใชตรวจสอบคาตัวเลข 2 คาที่ปอนเขาไปใน Textbox โดยใชเงื่อนไขเพื่อทดสอบวา
คาไหนที่มากหรือนอยกวากัน ดังนี้
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 20
เขียนโคดดังนี้
คําสั่ง swith…case
ใชสําหรับการทํางานที่มีหลายเงื่อนไข ซึ่งจริงๆ แลวก็ใช if…else ก็ได แตถาหากมีหลายเงื่อนไขก็
ใชคําสั่งนี้จะสะดวกกวาเยอะครับ
รูปแบบคําสั่ง
swith ( )
{
case ( 1) :
//
break;
case ( 2) :
//
break;
.....
default :
//
break;
}
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 21
ตัวอยาง
เปนโปรแกรมทดสอบการพิมพตัวอักษรลงใน TextBox ซึ่งกําหนดใหพิมพ a,b,c เทานัน้ ซึง่ เมื่อ
พิมพเสร็จและคลิ๊กที่ปุม โปรแกรมก็จะแสดง MessageBox มาใหทราบวาเราพิมพตัวอะไรลงไป
หมายเหตุ :
string case
ดังตัวอย่าง
แต่ถ้าเป็ นตัวเลขก็ไม่ต้องนะครับ
การเขียนโปรแกรมดวยคําสั่งวนรอบ
คําสั่ง for
เปนคําสัง่ วนรอบที่ใชสําหรับการสั่งใหโปรแกรมทํางานเดิมๆ เปนจํานวนครั้งตามที่ตองการ เชน
ตองการใหพิมพชื่อตนเองมา 10 ครั้ง เปนตน ประโยชนของคําสั่งนี้ก็คือ ไมตองพิมพหลายคําสั่งหากตองการ
ใหทํางานเดิมๆ ซ้าํ ๆ
รูปแบบคําสั่ง
อธิบายเพิ่มเติม
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 22
อธิบายคําสั่ง
Dim i As Integer เปนการประกาศตัวแปร i เพื่อใชเปนตัวนับรอบ
For i=1 to 10 ใชกําหนดจํารวนรอบ 10 รอบ
ListBox1.Items.Add(“ประเทศไทย”) เปนคําสั่งที่ใหเพิ่มคําวาประเทศไทยเขาไปใน Listbox
Next i ใชคูกับ for โดยตองเปนตัวแปรตัวเดียวกัน
เมื่อเขียนโปรแกรมเสร็จก็ลองรันโปรแกรมดูนะครับ ซึ่งก็จะไดผลดังนี้
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 23
คําสั่ง while
เปนคําสัง่ วนรอบอีกคําสั่งหนึ่ง ที่ไมไดกาํ หนดรอบไวตงั้ แตเริ่มตน แตเปนการกําหนดเงื่อนไขที่ใหทํา
คําสั่งเดิมซ้ําๆ ตราบเทาที่เงื่อนไขเปนจริงๆ ซึ่งโปรแกรมจะทําการตรวจสอบเงื่อนไขกอนที่จะเขาไปทํางาน
ใน block คําสั่ง หากโปรแกรมพบวาเงื่อนไขเปนเท็จก็จะออกจากการทํางานแบบวนรอบนี้
รูปแบบคําสั่ง
while
.....
...
End while
ตัวอยาง
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 24
อธิบายคําสั่ง
Dim i As Integer เปนการประกาศตัวแปร i เพื่อใชเปนตัวนับรอบ
While i<11 เมื่อ i มีคานอยกวา 11 ก็ใหทํางาน
ListBox1.Items.Add(“ประเทศไทย รอบที่ : ”& i) เปนคําสั่งที่ใหเพิ่มคําวาประเทศไทยเขาไปใน
Listbox โดยใหแสดงรอบดวย
i=i+1 เพิ่มคา i เพื่อใหจํานวนรอบเพิ่มขั้นทีละ 1
End while จบคําสั่ง while
สําหรับคําสัง่ while นี้อาจจะประยุกตใชกับฐานขอมูลไดเชนกัน โดยอาจจะใชสําหรับการแสดงขอมูลใน
ฐานขอมูล เชน ใหอานขอมูลจนกวาจะหมด เปนตน
คําสั่ง do…while
เปนคําสัง่ วนรอบอีกคําสั่งหนึ่ง ที่ไมไดกาํ หนดรอบไวตงั้ แตเริ่มตน แตเปนการกําหนดเงื่อนไขที่ใหทํา
คําสั่งเดิมซ้ําๆ ตราบเทาที่เงื่อนไขเปนจริงๆ
รูปแบบคําสั่ง
Do while
.....
Loop
ลองเขียนคําสั่งดังตัวอยางดังนี้ แลวลองรันโปรแกรมดูนะครับ
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 25
บทที่ 3
การโปรแกรมเชิงวัตถุ
Object Oriented Programming
เปนแนวการเขียนโปรแกรมที่เปนการแกปญหาแบบมองเปนวัตถุ ซึ่งวัตถุเองก็จะประกอบดวยสวน
หลักๆ 2 สวนไดแก คุณสมบัตแิ ละหนาที่ และในโปรแกรมหนึ่งๆ มีหลายวัตถุก็จะสามารถเรียกใช สืบทอด
หรือเขาถึงวัตถุใดๆ ไดตามตองการ (ขึ้นกับขอกําหนดและวิธีการ)
Class
เปนกลุมของ Object ที่ประกอบดวย 2 สวนคือ
- คุณสมบัติ (Attribute)
- หนาที่ (Method)
ตัวอยาง Class
Class คน
Attribute
o สวนสูง
o น้ําหนัก
o แขน
o ขา
o สีผิว
o อายุ
Method
o กิน
o เดิน
o นอนหลับ
o ฯลฯ
Class คอมพิวเตอร
Attribute
o CPU
o RAM
o VGA
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 26
o ฯลฯ
Method
o คํานวณเลขได
o เก็บขอมูล
o แสดงผล
o ฯลฯ
ในทางโปรแกรมไมสามารถดําเนินการกับ Class ตรงๆ ไดตองดําเนินการผาน Object
Object
เปนตัวแทนของ Class ซึ่งมีรูปแบบการสราง ดังนี้
Visibility
หมายถึงขอบเขตของการเขาถึง ไมวาจะเปนตัวแปร หรือ Method ซึ่ง Visibility นี้จะเปนสิ่งสําคัญมาก
ในการเขียนโปรแกรมแบบเชิงวัตถุ เพราะคุณสมบัติที่เรียกวา Encapsulation นั้นเอง โดยในเรื่องของ
Visibility สามารถแบงออกเปน
1. Private หมายถึง ถาประกาศ Visibility นี้ไวหนาตัวแปรหรือ Method ก็จะมีเพียงใน Class
เดียวกันเทานัน้ ที่สามารถเขาถึง ตัวแปร และ Method นี้ได
2. Protected หมายถึง ถาประกาศ Visibility นี้ไวหนาตัวแปรหรือ Method ก็จะมีเพียง Class
เดียวกันและ Class ที่สืบทอดตอไป ที่จะสามารถเขาถึงได
3. Public หมายถึง ถาประกาศ Visibility นี้ไวหนาตัวแปรหรือ Method ไมวา Class ใดๆ ก็สามารถ
เขาถึงได
ตัวอยาง 1
Private name As String หมายถึง ตัวแปร name เปนชนิด String ที่สามารถใชไดเฉพาะใน
Class ที่มันอยูเทานัน้
หมายเหตุ แตโดยพื้นฐานแลว ใน Visual VB.NET ไมจําเปนตองประกาศ Visibility เปน
Private เนื่องจากโปรแกรมจัดเปนคาเบื้องตนใหอัตโนมัติ เชน
Dim name As String
คําสั่งนีจ้ ะมีคาเดียวกันกับตัวอยางดานบน
ตัวอยาง 2
Private void Add(int x, int y)
คําสั่ง.....
บทที่ 4
การเขียนโปรแกรมกับฐานขอมูล
Database Programming
OleDbConnection SqlConnection
XML
เขียนคําสั่งควบคุม
หลักการสรางโปรแกรม
1. สรางฐานขอมูล (จากโปรแกรม Database อยางใดอยางหนึ่ง)
2. สราง Interface เพื่อติดตอกับฐานขอมูล
3. เขียนคําสั่ง
สุดทายแลวก็จะไดหนาจอดังนี้ครับ
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 33
Data GridView
การแกไข DataGridView
แลวก็จะไดหนาจอดังนี้
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 34
การเขียนคําสั่งควบคุม
เมื่อไดดังนี้แลว ตอไปจะเปนการเขียนคําสั่งเพื่อควบคุมการทํางานทั้งหมด โดยจากตัวอยางในคูมือชุดนี้จะมี
การทํางานเปนลําดับสําคัญๆ ดังนี้
- ปุม “เพิ่มใหม” ทําหนาที่ลา งขอความที่อยูใน textbox ทั้งหมดใหเปนชองวางและให cursor
ไปกระพริบอยูที่ TextBox ตัวแรก (รหัสนักศึกษา) เพื่อรอรับขอมูลจากผูใช
- ปุม “บันทึก” ทําหนาที่บนั ทึกขอมูลใหมลงไปในฐานขอมูล โดยเมื่อบันทึกขอมูลเสร็จแลวก็จะ
เรียกใชคําสั่งการทํางานของปุม “เพิ่มใหม” เพื่อทําให TextBox เปนชองวาง และจะ
ปรับปรุงขอมูลใน DataGridView เปนขอมูลที่เปนปจจุบนั
- ปุม “แกไข” ทําหนาทีบ่ ันทึกการแกไขขอมูลเดิม โดยการแกไขนั้นหมายถึงการปรับปรุงขอมูล
ที่มีอยูเดิมใหมีการเปลี่ยนแปลงและจะตองทําการคนหาขอมูลกอน ซึ่งโดยตามหลักเกณฑแลว
ไมควรแก field ที่เปน primary key
- ปุม “ลบ” ทําหนาที่ลบขอมูลออกจากฐานขอมูล โดยจะตองทําการคนหาขอมูลกอน ซึ่งการ
ลบก็ใหมี MessageBox ถามเพื่อยืนยันความแนใจในการลบ
- ปุม “คนหา” ทําหนาที่คนหาขอมูล โดยผูใชจะระบุชื่อนักศึกษาเขาไปใน TextBox โดย
โปรแกรมนั้นใหระบุตัวอักษรตัวใดตัวหนึ่งก็ได
- ปุม “เลือก“ ทําหนาที่เอาขอมูลที่อยูใน DataGridView ที่ผูใชเลือกไปแสดงใน TextBox
- ปุม “ปด” ทําหนาที่ในการปดฟอรม
เขียนโคดไดดังตัวอยาง ตามลําดับดังนีน้ ะครับ
Step 1
เพิ่มคําสั่งที่ใชสําหรับการติดตอฐานขอมูล ดังตัวอยาง
ตองเพิ่มคําสั่งดังกลาวไวดานบนสุดของหนาตางโคดเทานั้นนะครับ
Step 2
ประกาศตัวแปรที่จะใชสาํ หรับการติดตอกับฐานขอมูล
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 35
Step 3
เขียนคําสั่งเพื่อติดตอกับฐานขอมูล โดยกําหนดไวที่ Form_Load หมายถึงเมื่อ Form นั้นถูกเปด
ขึ้นมาก็ใหติดตอกับฐานขอมูล
Step 4
เขียนคําสั่งเพื่อดําเนินการกับปุม ตางๆ
ปุม บันทึก
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 36
Function clrtxt()
Function callGrid()
ปุม “เพิ่มใหม”
ปุม “ปด”
ปุม “แกไข”
ปุม “ลบ”
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 37
ปุม “คนหา”
ปุม “เลือก”
Event “TextBox1_Change “
บทที่ 5
การสราง Report, Menu bar และ Tool bar
การทํารายงานดวย Crystal Report
การทํารายงานเปนสวนสําคัญในการทําโปรแกรม เพราะวาขอมูลทั้งหมดที่อยูในโปรแกรม ที่เกิด
จากการประมวลผลตางๆ ในโปรแกรม จะนํามาใชไดหรือไมไดก็อยูที่รายงานนี่แหละครับ สําหรับ Visual
Studio 2010 จะบรรจุ Crystal Report มาดวยอยูแลว ดังนั้นเมื่อลงโปรแกรม Visual Studio 2010 ก็จะ
ได Crystal Report มาดวย
Crystal Report เปนโปรแกรมที่ใชจัดทํารายงานทีม่ ีประสิทธิภาพมากและมีรายละเอียด
คอนขางมาก สําหรับในคูมือฉบับนีจ้ ะแนะนําเพียงการสรางรายงานเบื้องตนเทานั้น ลองศึกษาดูนะครับ
Step 1
สรางไฟลรายงาน
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 39
สําหรับสวนรายงานมีสวนประกอบดังนี้
Report Header = ใชกําหนดหัวรายงาน จะแสดงในหนาแรกของรายงานเทานัน้
Page Header = ใชกําหนด หัวกระดาษ ซึ่งจะมีในทุกหนา
Details = ใชกําหนดสวนแสดงรายละเอียดของรายงาน หรือสวนแสดงขอมูลนัน่ เอง
Report Footer = ใชกําหนดสวนทายกระดาษ
Page Footer = ใชกําหนดสวนทายรายงาน จะปรากฏเปนสวนสุดทายเมื่อแสดงรายงานเสร็จสิ้นแลว
Step 2
ติดตอฐานขอมูล
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 40
Step 3
ออกแบบหัวรายงาน
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 41
Step 4
ใส field ขอมูล
เปนสวนที่สาํ คัญ เพราะขอมูลจะแสดงหรือไมแสดงก็อยูที่สวนนี้ หลักการงายๆ ก็เพียงแคลาก
field มาวางไวในสวน Details ในรายงานแคนนั้ เอง
Step 5
การนํารายงานเขามาใชบน Form
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 42
Step 2
การทําเมนู
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 44
Step 3
การทําทูลบาร
Step 4
เขียนโคดกับเมนูบาร ตองการเขียนกับเมนูใดก็ double click ที่เมนูนนั้
Step 5
เขียนโคดกับทูลบาร คลายกับเมนูบาร หากตองการเขียนโคดกับปุมไหนก็ double click ที่ปุมนั้น
ไดเลย จากนั้นก็เขียนคําสั่งควบคุมไดตามตองการ
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 46
บทที่ 6
ภาษา SQL
ภาษา SQL
ภาษา SQL เปนภาษาที่ใชสาํ หรับจัดการฐานขอมูล โดยภาษาที่ใชเขียนโปรแกรมที่มีในปจจุบนั จะ
ใชภาษา SQL นี้เพื่อจัดการขอมูลทั้งนัน้ โดยสามารถนําภาษา SQL ใชรวมกับ Compiler ไดทกุ ภาษา ดังนั้น
หากมีความรูความเขาใจในภาษา SQL แลวก็จะสามารถพัฒนาโปรแกรมที่เกี่ยวกับฐานขอมูลไดอยางมี
ประสิทธิภาพ
สําหรับเนื้อหาในสวนนี้ ไดนําเสนอคําสั่งพื้นฐานของภาษา SQL ที่จะสามารถนําไปใชไดในการ
เขียนโปรแกรม ไมไดนําเสนอทั้งหมด ลองศึกษาดูกันนะครับ
คําสั่งสําหรับเรียกขอมูล
มีรูปแบบดังนี้
รูปแบบที่ 1 Select field1,field2,fieldn.. from Table
เปนคําสัง่ สําหรับเรียกขอมูลจากฐานขอมูล โดย Select คือคําสั่ง
Field นั้น เปนชื่อ Field ที่เรามีในฐานขอมูล โดยสามารถเลือก Field เพื่อแสดงขอมูลไดตามที่
ฐานขอมูลมี
From เปนคําสัง่ ที่บง บอกวา เราเลือก Field จากตารางขอมูลไหน
Table คือ ชื่อตารางฐานขอมูลที่เราตองการ
ตัวอยาง
สมมติวาในตารางฐานขอมูลชื่อ Employee ที่เก็บขอมูลเกี่ยวกับลูกจางในบริษัท โดยมีตารางขอมูลดังนี้
ID NAME ADDRESS TEL SALARY
AC001 น.ส.อนงค ใจดี 123 ถ.ทหาร อ.เมือง จ.อุดรธานี 042-254615 7,500
MK001 นายถาวร วรดี 145 ถ.อุดร-สกล อ.เมือง จ.อุดรธานี 09-7821546 8,200
MK002 น.ส.ลักษณ อาทร 321/38 อ.เมือง จ.อุดรธานี 042-236457 8,500
BC001 นายมงคล ไปดี 145 หมู 2 ต.บานเลื่อม อ.เมือง จ.อุดรธานี 01-7121288 8,600
BC002 นายจงรัก รักดี 145 ถ.พัฒนาการ อ.เมือง จ.หนองคาย 042-248665 8,900
BC003 น.ส.ศิริ ศิริลักษณ 146 ถ.ทหาร อ.เมือง จ.อุดรธานี 042-246658 11,000
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 47
รูปแบบที่ 2
Select * from Table
หมายความวา เลือกเอาทุก Field ในตารางฐานขอมูล
ตัวอยาง
Select * from employee ก็จะไดรายงานดังนี้
ID NAME ADDRESS TEL SALARY
AC001 น.ส.อนงค ใจดี 123 ถ.ทหาร อ.เมือง จ.อุดรธานี 042-254615 7,500
MK001 นายถาวร วรดี 145 ถ.อุดร-สกล อ.เมือง จ.อุดรธานี 09-7821546 8,200
MK002 น.ส.ลักษณ อาทร 321/38 อ.เมือง จ.อุดรธานี 042-236457 8,500
BC001 นายมงคล ไปดี 145 หมู 2 ต.บานเลื่อม อ.เมือง จ.อุดรธานี 01-7121288 8,600
BC002 นายจงรัก รักดี 145 ถ.พัฒนาการ อ.เมือง จ.หนองคาย 042-248665 8,900
BC003 น.ส.ศิริ ศิริลักษณ 146 ถ.ทหาร อ.เมือง จ.อุดรธานี 042-246658 11,000
Where
เปน Clauses ซึ่งใชกําหนดเงือ่ นไขในการแสดงขอมูล โดยจะตองใชรวมกับคําสั่ง Select เทานัน้
มีรูปแบบดังนี้
Select field1,field2,fieldn.. from Table where field ที่ตองกําหนดเปนเงื่อนไข เงื่อนไข
เงื่อนไข หมายถึง เงื่อนไขในสิ่งที่เราตองการแสดงผล โดยทั้งนี้จะตองคํานึงถึงชนิดของขอมูลใน
ฐานขอมูลดวย
ตัวอยาง
จากตัวอยางฐานขอมูล Employee หากตองการแสดงขอมูลของพนักงานที่มีเงินเดือนที่มากกวา
8,500 ก็จะสามารถเขียนคําสั่งไดดังนี้
Select * from employee where salary > 8,500
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 48
ซึ่งก็จะไดรายงานดังนี้
ID NAME ADDRESS TEL SALARY
BC001 นายมงคล ไปดี 145 หมู 2 ต.บานเลื่อม อ.เมือง จ.อุดรธานี 01-7121288 8,600
BC002 นายจงรัก รักดี 145 ถ.พัฒนาการ อ.เมือง จ.หนองคาย 042-248665 8,900
BC003 น.ส.ศิริ ศิริลักษณ 146 ถ.ทหาร อ.เมือง จ.อุดรธานี 042-246658 11,000
แตถาหากในกรณี Field ที่ตองการกําหนดเปนเงื่อนไข มีชนิดขอมูลเปน Text นั้นจะตองใสเครื่องหมาย ‘
‘ ดวย
Operator Boolean
- AND ใช Boolean 2 ตัว ในแบบฟอรมดังนี้ A And B เปน Argument และประเมินผลเปน
จริง ถาทั้งสองเปนจริง
- OR ใช Boolean 2 ตัว ในแบบฟอรมดังนี้ A Or B เปน Argument และประเมินผลเปน
จริง ถาตัวใดตัวหนึ่งเปนจริง
- NOT ใช Boolean 1 ตัว ในแบบฟอรมดังนี้ Not A เปน Argument และเปลีย่ นคาของ
Argument นั้นจากเท็จเปนจริงหรือ จากจริงเปนเท็จ
โดยจะมีรูปแบบดังนี้
Select field1,field2,fieldn.. from Table where field ที่ตองกําหนดเปนเงื่อนไข1 เงื่อนไข1
Operator Boolean field ที่ตองกําหนดเปนเงื่อนไข2 เงื่อนไข2
IN
IN จะกําหนดเซ็ต ซึ่งอาจจะรวมหรือไมรวมคาที่กําหนดใหไดอยางชัดเจน ซึ่งเปนการรวมที่งายกวา
AND และ OR เชน
Select * from employee where salary IN (8500,11000)
ก็จะไดขอมูลดังนี้
ตัวอยาง
Select * from employee where salary between 8500 and 10000 ซึ่งก็จะไดรายงานดังนี้
ID NAME ADDRESS TEL SALARY
MK002 น.ส.ลักษณ อาทร 321/38 อ.เมือง จ.อุดรธานี 042-236457 8,500
BC001 นายมงคล ไปดี 145 หมู 2 ต.บานเลื่อม อ.เมือง จ.อุดรธานี 01-7121288 8,600
BC002 นายจงรัก รักดี 145 ถ.พัฒนาการ อ.เมือง จ.หนองคาย 042-248665 8,900
LIKE
ใชไดกับชนิดขอมูลที่เปน Text เทานั้น เมื่อใชในการหาแถว ขอความยอย หรือกลาวอีกนัยหนึ่งได
วา ใชคนหาใน Field ที่เปนตัวอักษรเพื่อดูวามีสวนใดของ Field นั้นตรงกับแถวขอความใดบาง โดยจะมี ตัว
อักขระพิเศษที่ใชรวมกับ LIKE คือ
- _) หมายถึงตัวอักษรใด ๆ เพียงตัวเดียว เชน ‘b_t’ จะตรงกับ ‘bat’ หรือ ‘bit’ แตจะไมตรง
‘brat’ เปนตน
- % หมายถึงลําดับของตัวอักษรจํานวนเทาใดก็ได เชน ‘%p%’ จะตรงกับ ‘put’,’poist’ หรือ
‘opt’ แตจะไมตรงกับ ‘spite’
- * หมายถึงตัวอักษรใด ๆ ทุกตัวอักษรที่อยูหลังตัวอักษรที่เรากําหนด เชน ‘p*’ จะตรงกับ
‘parent’,’present’หรืออื่น ๆ ที่ขึ้นตนดวย P
ตัวอยาง
select * from employee where id like ‘mk*’ ซึ่งจะไดขอ มูลดังนี้
ID NAME ADDRESS TEL SALARY
MK001 นายถาวร วรดี 145 ถ.อุดร-สกล อ.เมือง จ.อุดรธานี 09-7821546 8,200
MK002 น.ส.ลักษณ อาทร 321/38 อ.เมือง จ.อุดรธานี 042-236457 8,500
Function ที่ใชในการรวมคา
การสอบถามขอมูลสามารถทําใหเกิดหลักเกณฑในการรวมกลุมคาตาง ๆ โดยผานทางฟงกชนั ใน
การรวม ฟงกชันในการรวมจะใหคาเพียงคาเดียวสําหรับคาของทั้งกลุมที่ปอนไวในตาราง ไดแก
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 50
Group By
group by จะยอมใหกําหนดเซ็ตยอยของคาตาง ๆ ใน Field ใด Field หนึ่ง โดยเฉพาะในรูปของ
อีก Field หนึ่ง แลวใชฟง กชนั ในการรวมกับเซ็ตยอยนั้น ดังนี้แลวทําใหสามารถรวม Field ตาง ๆ กับ
ฟงกชันในการรวมเขาดวยกันในคําสั่ง Select คําสั่งเดียว
การเรียงลําดับ Output ดวย Field
ในตารางฐานขอมูลทีไ่ ดสรางไวนั้น โดยสวนใหญจะไมมีการเรียงขอมูล หรือการปรับปรุงขอมูลให
อยูในรูปแบบของการเรียงขอมูล โดยสวนใหญขอมูลก็จะมีการเขาออกในตารางฐานขอมูลอยูตลอดเวลา เมื่อ
หากตองการรายงานและเพื่อใหรายงานนัน้ มีความสวยงามและดูงาย ก็จะตองมีการเรียงขอมูล โดยในภาษา
SQL นั้น ก็จะมีการเรียงขอมูลโดยเลือก Field ที่มีคาที่ตองการเรียงไดตามความตองการ ซึ่งการเรียงขอมูล
นั้นก็จะมีอยู 2 ประเภท คือ จากนอยไปมาก และจากมากไปนอย ในภาษา SQL มีรูปแบบดังนี้
select FIELDS from TABLE < CONDITION > ORDER BY FIELD (DESC,ASC)
เปนคําสัง่ ที่ตอทายจากคําสั่งตาง ๆ ที่ไดกลาวมาแลว โดยรูปแบบก็จะเปนดังขอความที่ขีดเสนใต
ซึ่ง DESC หมายถึง เรียงจากมากไปนอย และ ASC คือเรียงขอมูลจากนอยไปมาก สวน CONDITION นั้นจะ
มีหรือไมมีก็ได สําหรับ SQL นั้น สามารถเรียงขอมูลไดกับขอมูลทุกประเภทไมวา จะเปนขอมูลตัวอักษร
ตัวเลข หรือวันที่ก็ตาม ซึ่งก็ขึ้นอยูกับความตองการของผูใช เชน หากตองการเรียงขอมูลพนักงานจากแฟม
employee โดยใหเรียงตามเงินเดือน จากมากไปนอย ก็สามารถใชคําสั่งไดดังนี้
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 51
การประมวลผลขอมูลพรอมกันหลายตารางดวยภาษา SQL
การเชื่อมโยงของขอมูลระหวาง Table ที่สัมพันธกันภายในภาษา SQL ใชคําสัง่ INNER JOIN ซึ่ง
มีรูปแบบดังนี้
INNER JOIN <TABLE> ON < RELATIONED ATTRIBUTES >
โดยที่ TABLE หมายถึง Table ที่จะนํามา join กับ table ที่ระบุไวในสวน FROM
RELATIONED ATTRIBUTES หมายถึง รายชื่อ Field ที่สัมพันธกนั ระหวาง 2 Table
เชน มีตารางฐานขอมูลอีกตารางหนึ่ง ชื่อ sale โดยมีขอมูลดังนี้
ID CODE_PRODUCT AMOUNT DATE_SALE
MK001 HD-40SG 5 22/7/45
MK001 CD-52SN 10 22/7/45
MK002 FDD 25 15/6/45
MK002 MB-P4ASUS 13 18/7/45
หากตองการดูรายละเอียดของการขายสินคาของพนักงานโดยมีรายละเอียดของพนักงานบางสวนดวย ก็
สามารถใชคําสั่งดังนี้
select id,name from employee inner join sale on sale.id = employee.id
ซึ่งก็จะไดรายงานดังนี้
การเพิ่มขอมูล
รูปแบบคําสั่ง
Insert into ชื่อตาราง (field1,filed2,…)values(คาที1่ ,คาที2่ ,…)
เชน
Insert into student(code,name)values(“001”,”นายใจดี”)
การแกไขขอมูล
รูปแบบคําสั่ง
Update ชื่อตาราง set field1=คาใหม,field2=คาใหม,…. Where field (ที่เปน key)=คาที่มี
เชน
Update student set name=”นายดีใจ” where code=”001”
การลบขอมูล
รูปแบบคําสั่ง
Delete from ชื่อตาราง Where field (ที่เปน key)=คาที่มี
เชน
Delete from student Where code=”001”
ตัวอยาง
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 54
บทที่ 7
ASP.NET
ASP.NET
สวนประกอบของเว็บไซตใน ASP.NET 2.0 มีดวยกัน 3 สวนใหญๆ ดังนี้
เพิ่มเติม ในเว็บไซต 1 เว็บไซต เราสามารถนําไฟลที่สรางจาก คลาสสิก ASP (*.asp หรือ global.asa) มาบรรจุ
ไวในเว็บไซตของ ASP .NET เพื่อใชงานได แตการทําเชนนี้ จะทําใหเว็บไซตเราประกอบไปดวยแอพพลิเคชั่น
โดเมน 2 ตัว คือ แอพพลิเคชั่นโดเมนของ คลาสสิก ASP กับ แอพพลิเคชั่นโดเมนของ ASP .NET ซึ่งทั้งสอง
โดเมนนัน้ ไมสามารถที่จะแลกเปลี่ยนขอมูลระหวางกันได เนื่องจากอยูคนละแอพพลิเคชัน่ โดเมนนั่นเอง
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 55
2. ไฟลในเว็บไซต ASP .NET 2.0 เว็บไซตที่สรางบน ASP .NET 2.0 สามารถรองรับไฟลทมี่ ีอยูใน ASP .NET
1.x ไดทั้งหมด นอกจากนี้ยงั ไดเพิ่มไฟลชนิดใหม ที่ทําใหการพัฒนาเว็บไซตเปนไปไดอยางสะดวกมากขึ้นดังนี้
ภายในเว็บไซตที่สรางบน ASP .NET 2.0 เราสามารถเพิ่มไฟลตา งๆ เชน Code Behind เว็บฟอรม หรือ User
Control ไดเหมือนกับเว็บไซตทสี่ รางบน ASP .NET 1.x แตสวนที่เพิ่มเขามาคือโฟลเดอร 7 โฟลเดอรดังภาพ
ขั้นตอนที่ 1 Instantiation
ขั้นตอนที่ 2 Initialization
หลังจากที่มีการสรางลําดับชั้นของคอนโทรลเสร็จแลว จะเขามาในสวนของเหตุการณเริ่มตน
(Initialization) ของทั้งเว็บฟอรม และของคอนโทรลภายในเว็บฟอรม เหตุการณนี้ตรงกับเมธอด OnInit ของทั้ง
เว็บฟอรม และคอนโทรล โดยเมธอด OnInit ของคอนโทรลจะถูกเรียกกอนจนครบทุกตัว จากนั้นจึงทําการเรียก
เมธอด OnInit ของเว็บฟอรม
การโหลดคาจาก View State จะทําเฉพาะตอนที่เว็บฟอรมมีการ Post back เทานั้น ในขั้นตอนนี้ ASP .NET
จะทําการโหลดคาจาก View State แลวนําคานีไ้ ปกําหนดใหกับคอนโทรลในเว็บฟอรมตามลําดับชัน้ ของอ็อป
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 60
ขั้นตอนที่ 5 Load
ขั้นตอนที่ 8 Render
สําคัญมาก โปรเจคประเภท Web Application ที่เคยมีใน Visual Studio .NET 2003 จะหายไปใน Visual
Studio 2010 แตจะมีโปรเจคเว็บไซตเขามาแทน แตหลังจากที่ Visual Studio 2010 ออกมาไดไมนาน
ไมโครซอฟตถูกบนมาจากนักพัฒนาชินกับโปรเจค Web Application ดังนั้นทางไมโครซอฟตจึงไดทาํ ตัวติดตั้ง
โปรเจค Web Application เพิ่มเติมใหนักพัฒนาดาวนโหลดเพิ่มฟรีในตอนหลัง ซึ่งคุณสามารถเขาไปอาน
รายละเอียดหรือโปรเจคนี้ไดที่ http://msdn2.microsoft.com/en-us/asp.net/aa336618.aspx แตอยางไรก็
ตามโปรเจค Web Application นี้ไดถูกรวมอยูใน Visual Studio 2010 Service Pack 1 เรียบรอยแลว ดังนั้น
เราไมจําเปนตองติดตั้งโปรเจค Web Application ซ้ําอีก หลังจากที่ติดตั้ง Service Pack 1 ไปแลว
เมื่อเลือกสรางเว็บไซตใหมแลว จะสามารถเลือกชนิดของโปรเจคเว็บดังภาพ
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 63
สวนประกอบที่จําเปนตองเลือกในการสรางโปรเจคมีอยูดวยกัน 3 สวนดังนี้
สวนที่ 1 เทมเพลต
สวนที่ 2 Location
สวนที่ 3 ภาษาที่ใช
Master Page
สําหรับเว็บไซตที่มีขนาดกลาง ไปถึงขนาดใหญ มักจะมีสวนหลักๆ ที่เหมือนกันในแทบทุกหนา ปกติแลว
สวนที่เหมือนกันนี้จะเปนรูปแบบเกือกมา (Horse shoe) ซึ่งจะประกอบดวยสวน Header ดานบน สวน
Navigation ดานซาย และสวน Footer ที่อยูดานลาง ดังภาพ
ในทางปฏิบัติ เรามักไมใชแท็ก div ของภาษา HTML เพื่อทําการแบง Master Page ออกเปนสวนๆ แตเรามักใช
แท็ก table ของภาษา HTML แทน ดังโคดตัวอยางที่ 9-32 ที่แสดงมุมมอง Source ของภาพ
จากภาพ หลังจากเลือกตัวเลือก Select master page แลว กดปุม Add ที่ดานลางขวา จะพบหนาใหเลือก
ไฟล Master Page ดังภาพ
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 72
</asp:Content>
การสรางสไตลใหกับเว็บฟอรม
การสรางสไตลใหกับเว็บฟอรม หรือเอกสาร HTML จะทําไดโดยการกําหนดสไตลชีต โดยทั่วไปสไตลชตี มี
3 แบบดังภาพ
แท็ก INPUT มีสีแดง แตสไตลชตี แบบอินไลนกาํ หนดใหแท็ก INPUT มีสีน้ําเงิน ผลลัพธทไี่ ดคือ แท็ก INPUT จะมี
สีน้ําเงินตามสไตลชีตแบบอินไลน หรือกลาวไดวาสไตลชีตแบบอินไลนจะเขียนทับสไตลแบบไฟล หรือแบบบล็อค
เสมอนั่นเอง ดังภาพ
โครงสรางของ Theme
Control
User Control
ADO.NET
โครงสรางหลักของ ADO.NET
จะเห็นไดวา ODBC และ OleDb นั้น ก็ยงั คงไดรบั การพัฒนาใหเปน Data Provider ใน .NET
Framework อยู นั่นก็เพื่อที่วา สถาปตยกรรม .NET จะไดสามารถทํางานไดกับระบบจัดการฐานขอมูลที่รองรับ
ODBC และไฟลฐานขอมูลของ Access และ Excel ผานทาง OleDb ได เชนเดียวกับ ADO Classic แนนอนวา
คุณสามารถเลือกที่จะติดตอกับ SQL Server หรือ Oracle ผานทาง ODBC ไดเหมือนเคย แตอยาลืมวา คุณ
จะตองประสบกับขอจํากัดของ API ที่สามารถทํางานไดกับฐานขอมูลทุกรูปแบบ อยางทีผ่ ูเขียนไดกลาวถึงไปแลว
โดยสรุปอีกครั้งหนึ่งนัน่ ก็คือ
การแสดงขอมูลแบบ Connected
หลังจากที่เราไดทราบถึงอ็อปเจ็กตที่เกี่ยวของกับการติดตอฐานขอมูลกันแลว เราจะทดลองนําอ็อป
เจ็กตเหลานั้น มาใชในการเรียกดูขอมูลจากฐานขอมูล pubs ที่เราไดทาํ การติดตั้งไว เพื่อมาแสดงผลใน
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 85
connection.ConnectionString =
connection.Open();
เนื่องจากการเปด Connection ไปยัง Microsoft SQL Server Express นั้น มีการเรียกใชงาน Resource
ภายนอก (สังเกตไดจากการที่ออ็ ปเจ็กตนั้นมีคําสั่ง Dispose) ซึ่ง Garbage Collector ของ CLR ไมสามารถชวย
เราจัดการหนวยความจําได จึงควรจะตองใช using block เพื่อเปนการกําหนดให CLR นั้น เรียกคําสั่ง Dispose
ของอ็อปเจ็กต และจัดการลางหนวยความจําใหเมื่อการทํางานของโคดนั้น ออกจาก block ของ using ไป ซึ่งอัน
ที่จริงแลว จะมีผลเหมือนกับการเรียกคําสั่ง Dispose ดวยตัวเอง แตการใช using block นัน้ จะทําให Code
ดูงายขึ้น สามารถมองเห็นไดชัดเจนวาอ็อปเจ็กตมีการใชงานตั้งแตสวนไหน จนถึงสวนไหน และสามารถมั่นใจได
วา อ็อปเจ็กตนั้นจะถูก Dispose อยางแนนอน แมวา จะมี Exception หรือวาการเปลี่ยน Scope อยางไมตั้งใจก็
ตาม หลังจากเปด Connection แลว ขั้นตอนตอไปคือการสราง Command ขึ้นมา เพื่อสั่งให Microsoft SQL
Server นั้นดึงขอมูลออกมาจากฐานขอมูล อ็อปเจ็กต Command นั้นก็มีการเรียกใชงาน Resource ภายนอก
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 86
connection.ConnectionString =
"Integrated Security=True";
connection.Open();
command.Connection = connection;
command.ExecuteReader();
connection.ConnectionString =
"Integrated Security=True";
connection.Open();
command.Connection = connection;
int record = 0;
while ( reader.Read() )
record += 1;
litOutput.Text = sb.ToString();
connection.Open();
command.Connection = connection;
this.Author.DataSource = reader;
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 89
this.Author.DataBind();
การทํางานของโคดขางตน จะใหผลลัพธตามรูป
รายละเอียดของสวนยอยแตละสวนของความเปนสมาชิกมีดังนี้
การเตรียมใชงานความเปนสมาชิก
การใชงานฐานขอมูลทั้งสองแบบ จะกลาวถึงรายละเอียดในหัวขอถัดไป
คอนโทรล รายละเอียด
ใชสําหรับการล็อกอิน เปนคอนโทรลที่ประกอบไปดวยคอนโทรลยอยหลายตัว
Login
คือ คอนโทรล TextBox สําหรับกรอกชื่อ และรหัสผาน และคอนโทรล Button
สําหรับ Submit และ Reset
ใชแสดงชื่อของผูใชระบบที่ไดผา นการล็อกอินมาแลว
LoginName
ใชแสดงลิงค หรือปุมออกจากระบบ (Sign Out) ในกรณีที่ผูใชระบบไดล็อกอิน
LoginStatus แลว หรือหากผูใชระบบยังไมลอ็ กอิน จะแสดงลิงค หรือปุมที่ลิงคไปหนาล็อกอิน
(Sign In)
ใชแสดงกลุมของคอนโทรลใน 2 มุมมอง คือ มุมมองผูใชระบบทีย่ ังไมไดล็อกอิน
LoginView (Anonymous) และมุมมองผูใชระบบทีล่ ็อกอินแลว (Logged In)
ใชสําหรับเปลีย่ นรหัสผาน ผูใชระบบตองกรอกรหัสผานเกา รหัสผานใหม และ
ChangePassword ยืนยันรหัสผานใหม
ใชสําหรับแจงเตือนรหัสผานดวยอีเมลในกรณีที่ลืม ดวยคาดีฟอลต ระบบจะทํา
PasswordRecovery
การถามคําถาม และคําตอบกอนที่จะสงรหัสผานไปให แตถากําหนดคาแอตทริ
บิวต requiresQuestionAndAnswer ใหมีคาเปน false ระบบจะถามเพียงชื่อ
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 96
การใชงานคอนโทรล Login
<system.web>
<authorization>
<deny users="?"/>
</authorization>
…
</system.web>
</configuration>
การติดตั้งเว็บไซตที่เว็บเซิรฟเวอรในบางครั้ง เราอาจจะไมสามารถเขาถึงเว็บเซิรฟเวอรไดโดยตรง
อาจจะเนื่องจากเรื่องความปลอดภัยในบริษัทใหญ หรือหนวยงานขนาดใหญของราชการ กรณีนี้เราสามารถสราง
แพ็คเกจเพื่อสงใหกับผูดูแลระบบทําการติดตั้งใหได วิธีการสรางแพ็จเกจนี้ใหเราสรางโปรเจค Web Setup โดย
คลิกขวาที่โซลูชั่น แลวเลือก Add --> New Project… จะปรากฏไดอะล็อก Add New Project ใหเราเลือกชนิด
ของโปรเจคแบบ Other Project Types --> Setup and Deployment จากนั้นคลิกเลือกที่ Web Setup
Project ดังภาพ
การพัฒนาโปรแกรมทางธุรกิจ 2 (BC 307) 100
- DetectNewerInstalledVersion เปนตัวบอกใหแพ็คเกจตรวจสอบเว็บไซตที่ไดติดตั้งไวกอนหนา
หากเว็บไซตที่ติดตัง้ ไวกอนมีเวอรชั่นใหมกวา ตัวแพ็คเกจจะหยุดทําการติดตั้งทันที
- PreBuildEvent บอกใหแพ็คเกจทําการรันคอมมานไลนที่กําหนดไวกอนการติดตั้ง
- PostBuildEvent บอกใหแพ็คเกจทําการรันคอมมานไลนที่กําหนดหลังการติดตั้ง
- RemovePreviousVersions บอกใหแพ็คเกจทําการลบเวอรชั่นเกาที่มีอยูกอนการติดตั้ง
ใหคลิกเลือกที่บริการที่ตองการ ซึ่งอาจจะเปน FTP, NNTP, SMTP หรือ World Wide Web Service
ในหนาจอนี้ใหเลือก Internet Information Services Manager เอาไวดวย เพื่อใชเปนหนาจอ Admin สําหรับ
ที่ World Wide Web Serive ยังสามารถเขาไปเลือก option ตออีกดวยการคลิกที่ปุม Detail... ดานลางขวาจะ
พบไดอะล็อกซดานลาง
แตละWeb Site ที่อยูในเว็บเซิรฟเวอรตัวหนึ่งจะตองมีคา 3 คานี้ไมซา้ํ กัน ไมเชนนัน้ ตัวที่ซา้ํ จะ Start ไมขึ้น โดย
ปกติแลว Web Site ที่ไมซับซอนมาก เรากําหนดเพียง IP และ Port (IP Port = Socket) ก็เพียงพอ โดยปกติ
แลวสําหรับบริการที่เปดใชบนอินเตอรเน็ตจะใช Port 80 แตถาหากเปน SSL จะใชพอรต 443 แตในบางครั้งมี
ปญหาวามีไอพีไมพอกับแตละเว็บไซต เราจึงแกปญหาดวยการเพิ่ม Host Header เขาไปเพือ่ ให 1 IP และ
สามารถรองรับไดหลายเว็บไซต ซึ่งคาที่จะกรอกลงในชอง Host Header นี้จะเปน Domain Name เชน
ASPNETTHAI.COM และ WWW.ASPNETTHAI.COM เบื้องหลังของการรันเว็บไซต