วันศุกร์ที่ 10 กรกฎาคม พ.ศ. 2558

ติดตั้ง xampp พร้อมกับ SQL Server ในเครื่องเดียวกัน


วันอาทิตย์ที่ 10 สิงหาคม พ.ศ. 2557

แก้ไขปัญหา Restore ฐานข้อมูล Sql server ไม่ได้ Restore of database 'DB Name' failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)

แก้ปัญหาการ Restore  ฐานข้อมูลไม่ได้ และขึ้นข้อผิดพลาดคือ
Restore of database 'DB Name' failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)
สามารถแก้ไขปัญหาได้ดังภาพคือ

 ภาพที่ 1 : ขึ้นตอนในการ Restore ฐานข้อมูล

ภาพที่ 1 


 ภาพที่ 2 : เลือกรายการในเมนู Option ดังภาพ แล้วทำเครื่องหมายถูกที่
  - overwrite the existing database (with replace)
  - close existing connections to destination database





วันอาทิตย์ที่ 3 สิงหาคม พ.ศ. 2557

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine

เป็นวิธีแก้ไขปัญหา The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine ของ Microsoft Windows 64 bit  เมื่อเราต้องเชื่อมต่อกับฐานข้อมูล Access

Build Project ให้มีไฟล์ dll พร้อมกับไฟล์ exe

ถ้าเราต้องการทำให้การรัน หรือBuild โปรเจ็คแต่ละครั้งแล้วมีไฟล์ dll ที่อยู่ใน Project References ในโปรเจ็คเรา และให้ componentได้ลงทะเบียนใน GAC จากนั้นเราก็สามารเอาไฟล์เหล่านั้นไปใช้สำหรับติดตั้ง (Setup File)


มีขั้นตอนต่อไปนี้คือ
1. เลือกรายการ My Project
2. เลือกเมนู References 
3. คลิกที่รายการไฟล์ที่เกิดจากเรา References ไว้
4. ที่แถบคุณสมบัติ (Properties)  เลือก  Copy Local คุณสมเปลียน จาก  False  เป็น True 

เมื่อเรารันโปรแกรม (Start Debugging) แล้วเข้าไปดูที่โฟลเดอร์ Debug เราจะพบกับไฟล์ dll ที่ปรากฏขึ้นมา ดังภาพ





วันเสาร์ที่ 3 สิงหาคม พ.ศ. 2556

Ex.19 คำสั่งควบคุมแบบทำซ้ำ (For Next)

6. คำสั่งทำซ้ำแบบ For Next
คำสั่งนี้จะ ทำซ้ำตามจำนวนค่าเริ่มต้นจนถึง จำนวนรอบที่ได้กำหนดค่าไว้โดยที่ทุกรอบจะวนรอบทีละ 1 หรือตามจำนวนช่วงการเพิ่มค่าที่ระบุ (คำสั่งจะมีหรือไม่ก็ได้) จากคำสั่งทำซ้ำนี้นักศึกษาสามารถทำความเข้าใจได้ไม่ยาก เพราะ สามารถระบุจำนวนรอบได้เลย 
รูปแบบ
For 1.นิพจน์กำหนดค่าเริ่มต้น  To 2. จำนวนรอบ [Step 3. ช่วงการเพิ่มค่า] 
Next 

ตัวอย่าง
For   A = 1 To  50  Step 5     
Next 


ตัวอย่าง โปรแกรมนี้แสดงถึงการเพิ่มค่าทีละ 7 ในจำนวน 1 ถึง 50 สังเกตว่าสามารถระบุช่วงค่าคงที่จำนวนรอบได้เลย  จากนั้นทดลองลบคำสั่ง Step 7 ออก จะเห็นว่าการแสดงผลจะเพิ่มค่าทีละ 1 จนถึง 50 

|1|     Module Module1
|2|    
|3|         Sub Main()
|4|    
|5|             Dim i As Integer
|6|    
|7|             For i = To 50 Step 7
|8|                 Console.WriteLine(i)
|9|             Next
|10|   
|11|            Console.ReadLine()
|12|        End Sub
|13|   
|14|    End Module
การแสดงผล

ตัวอย่าง โปรแกรมนี้เป็นการประยุกต์โดยใช้คำสั่งการทำซ้ำมาซ้อนกัน (ลูปซ้อนลูป) เพื่อในแต่ละรอบให้มีการทำงานซ้ำตามจำนวนรอบ ในตัวอย่างเรียกว่าคำสั่ง For ซ้อน For
|1|     Module Module1
|2|    
|3|         Sub Main()
|4|             Dim i, j As Integer
|5|    
|6|             For i = To 7
|7|                 For j = To i
|8|                     Console.Write("{0} ", j)
|9|                 Next
|10|                Console.WriteLine()
|11|            Next
|12|   
|13|            Console.ReadLine()
|14|        End Sub
|15|   
|16|    End Module

การแสดงผล

ตัวอย่าง การทำงานของตัวอย่างนี้เหมือนกับตัวอย่างที่ผ่านมา ซึ่งเป็นการใช้คำสั่งทำซ้ำซ้อนคำสั่งทำซ้ำ 1 ชั้น ในตัวอย่างเรียกว่าคำสั่ง For ซ้อน Do While

|1|     Module Module1
|2|    
|3|         Sub Main()
|4|             Dim i, j As Integer
|5|    
|6|             For i = 1 To 7
|7|                 j = 0
|8|                 Do While j < i
|9|                     j = j + 1
|10|                    Console.Write("{0} ", j)
|11|                Loop
|12|                Console.WriteLine()
|13|            Next
|14|   
|15|            Console.ReadLine()
|16|        End Sub

|17|    End Module

การแสดงผล

สั่งเกตชุดคำสั่ง Do While จะต้องมีนิพจน์ประกอบคำสั่งทำซ้ำ 3 นิพจน์หากขาดนิพจน์ใดการทำงานจะผิดพลาด

Ex.18 คำสั่งควบคุมแบบทำซ้ำ (Do Loop Until)

5.  คำสั่งทำซ้ำแบบ Do  Loop Until 
เป็นคำสั่งทำซ้ำที่จะมีทำการเพิ่มค่าให้กับตัวแปรก่อนจากนั้นจึงตรวจสอบเงื่อนไขทีหลัง หากเงื่อนไขเป็น เท็จ คำสั่งจะทำซ้ำไปจนกว่า การตรวจสอบเงื่อนไขเป็น จริง จึงออกจากการวนรอบ
รูปแบบ
(1)นิพจน์กำหนดค่าเริ่มต้น 
Do
      (2)นิพจน์เพิ่มค่า 
Loop Until  (3)นิพจน์ตรวจสอบเงื่อนไข 
ตัวอย่าง
A = 0
Do 
          A = A + 1
Loop Until  A > 5 
ตัวอย่าง ความแตกต่างจากตัวอย่างที่ผ่านมาคือ ค่าเริ่มต้นจะมีค่าเท่ากับ 10 และจะลดลงทีละ 1 ทุกครั้งที่มีการวนรอบจนกว่า i จะมีค่าเท่ากับ 1 นั้นคือเงื่อนไขเป็น จริง จึงหยุดจากคำสั่งการทำซ้ำนี้    
          จากนั้นทดลองลบการเพิ่มค่าออก( i= i+1 ) จะพบกว่าการทำงานผิดพลาดและการวนรอบจะไม่สิ้นสุด เรียกกว่า “ลูปตาย”
|1|     Module Module1
|2|    
|3|         Sub Main()
|4|             Dim i As Integer = 10
|5|             Do
|6|                 Console.WriteLine(i)
|7|                 i = i - 1
|8|             Loop Until i < 1
|9|    
|10|            Console.ReadLine()
|11|        End Sub
|12|   
|13|    End Module

การแสดงผล

*********************************************

Ex.17 คำสั่งควบคุมแบบทำซ้ำ (Do Loop While)

4. คำสั่งทำซ้ำแบบ Do  Loop While 
เป็นคำสั่งทำซ้ำที่จะมีทำการเพิ่มค่าให้กับตัวแปรก่อนจากนั้นจึงตรวจสอบเงื่อนไขทีหลัง หากเงื่อนไขเป็น จริง คำสั่งจะทำซ้ำไปจนกว่า การตรวจสอบเงื่อนไขเป็น เท็จ จึงออกจากการวนรอบ

รูปแบบ
(1)นิพจน์กำหนดค่าเริ่มต้น 
Do
      (2)นิพจน์เพิ่มค่า 
Loop While  (3)นิพจน์ตรวจสอบเงื่อนไข

ตัวอย่าง
A = 0
Do 
          A = A + 1
Loop While A < 5


ตัวอย่าง โปรแกรมนี้ใช้ในการแสดงผลสูตรคูณซึ่งรับค่าแม่สูตรคูณมาจากแป้นพิมพ์ จากนั้นทำการวนรอบจำนวน 12 รอบ เมื่อเงื่อนไขเป็นเท็จจึงหลุดจากการทำซ้ำ สังเกตการเพิ่มค่าให้กับตัวแปร I ที่มีการเพิ่มค่าก่อนการตรวจสอบเงื่อนไขเสมอ ซึ่งโปรแกรมนี้เป็นการเขียนคำสั่งในการคำนวณอีกรูปแบบหนึ่งก่อนการแสดงผล 
|1|     Module Module1
|2|         Sub Main()
|3|             Dim num As Integer
|4|             Dim sum As Integer
|5|             Dim i As Integer = 1
|6|    
|7|             Console.Write("input multiply:")
|8|             num = Console.ReadLine
|9|             Do
|10|                sum = num * i
|11|                Console.WriteLine("{0} x {1} = {2} ", i, num, sum)
|12|                i = i + 1
|13|            Loop While i <= 12
|14|   
|15|            Console.ReadLine()
|16|        End Sub
|17|    End Module
การแสดงผล
*************************************************

Ex.16 คำสั่งควบคุมแบบทำซ้ำ ( Do Until Loop )

3. คำสั่งทำซ้ำแบบ Do Until  Loop
เป็นคำสั่งทำซ้ำที่จะมีการตรวจสอบเงื่อนไขก่อนการเพิ่มค่าหากเงื่อนไขเป็น เท็จ คำสั่งจะทำซ้ำไปจนกว่า การตรวจสอบเงื่อนไขเป็น จริง จึงออกจากการวนรอบ

รูปแบบ
(1) นิพจน์กำหนดค่าเริ่มต้น
Do Until (2) นิพจน์ตรวจสอบเงื่อนไข
             (3) นิพจน์เพิ่มค่า
Loop

ตัวอย่าง
A = 0
Do Until  A = 5
            A = A + 1
Loop

ตัวอย่าง โปรแกรมนี้ใช้ในการแสดงผลสูตรคูณซึ่งกำหนดค่าคงที่ ของสูตรคูณคือแม่ 7 และให้วนรอบจำนวน 12 รอบ โดยใช้การทำซ้ำแบบ Do Until เมื่อ I มีค่ามากกว่า 12 จริง ก็จะหยุดจากการทำซ้ำนี้
จากนั้นทดลองเขียนโปรแกรมเพื่อให้สามารถรับค่าเลขแม่สูตรคูณและจำนวนรอบ จากแป้นพิมพ์ ซึ่งจะทำให้โปรแกรมมีความยืดหยุ่นมากยิ่งขึ้น

|1|     Module Module1
|2|    
|3|         Sub Main()
|4|             Dim num As Integer = 7
|5|            
|6|              Dim i As Integer = 1
|7|             Do Until i > 12
|8|                 Console.WriteLine("{0} x {1} = {2} ", i, num, num * i)
|9|                 i = i + 1
|10|            Loop
|11|   
|12|            Console.ReadLine()
|13|        End Sub
|14|   
|15|    End Module

การแสดงผล

********************************************** 


Ex.15 คำสั่งควบคุมแบบทำซ้ำ (Do While Loop)

2. คำสั่งทำซ้ำแบบ Do While  Loop  
ซึ่งจะเป็นคำสั่งทำซ้ำที่จะมีการตรวจสอบเงื่อนไขก่อนการเพิ่มค่า หากเงื่อนไขเป็นจริงคำสั่งจะทำซ้ำไปจนกว่า การตรวจสอบเงื่อนไขเป็นเท็จ จึงออกจากการวนรอบ

รูปแบบ
(1) นิพจน์กำหนดค่าเริ่มต้น 
Do While (2) นิพจน์ตรวจสอบเงื่อนไข 
             (3) นิพจน์เพิ่มค่า 
Loop

ตัวอย่าง
A = 0
Do While  A < 5
            A = A + 1
Loop

ตัวอย่าง เป็นโปรแกรมตรวจสอบเลขคู่ (Even number) โดยใช้ตำดำเนินการเพื่อหารเก็บเศษ (MOD) และใช้คำสั่ง if มาตรวจสอบเงื่อนไขหากเศษนั้นมีค่าเท่ากับ 0 จะแสดงผลตัวเลขคู่ออกมา ซึ่งในทุกๆ รอบตัวแปร i จะเพิ่มค่าที่ละ 1 จนกว่าตัวแปร i จะมีค่าเท่ากับ 10 ซึ่งจะทำให้เงื่อนไขเป็นเท็จ เพราะ i จะต้องน้อยกว่า 10 เท่านั้น จากนั้นทดลอง 

             - ทดลองเปลี่ยนเงื่อนไข     จาก 10  เป็น 100
             - ทดลองเปลี่ยนเงื่อนไข  จาก 2  เป็น 3 
|1|     Module Module1
|2|    
|3|         Sub Main()
|4|             Dim i As Integer
|5|    
|6|             i = 0
|7|             Do While i < 10
|8|                 i = i + 1
|9|                 If i Mod 2 = 0 Then
|10|                    Console.WriteLine("Even number  is : " & i)
|11|                End If
|12|            Loop
|13|   
|14|            Console.ReadLine()
|15|        End Sub
|16|    End Module

การแสดงผล


************************************

Ex.14 คำสั่งควบคุมแบบทำซ้ำ (While End)

1. คำสั่งทำซ้ำแบบ While  End
เป็นคำสั่งทำซ้ำที่จะมีการตรวจสอบเงื่อนไขก่อนการเพิ่มค่าหากเงื่อนไขเป็นจริงคำสั่งจะทำซ้ำไปจนกว่า การตรวจสอบเงื่อนไขเป็นเท็จ จึงออกจากการวนรอบ

รูปแบบ

(1) นิพจน์กำหนดค่าเริ่มต้น
While (2) นิพจน์ตรวจสอบเงื่อนไข
            (3) นิพจน์เพิ่มค่า
End While

ตัวอย่าง
A = 0
While A < 5
            A = A + 1
End While

ตัวอย่าง เป็นโปรแกรมทำซ้ำโดยการแสดงจำนวนรอบพร้อมกับข้อความ “LRU” ในทุกๆ รอบตัวแปร count จะเพิ่มค่าที่ละ 1 จนกว่าตัวแปร count จะมีค่าเท่ากับ 5 ซึ่งจะทำให้เงื่อนไขเป็นเท็จ เพราะ count จะต้องน้อยกว่า 5 เท่านั้น จากนั้นทดลอง
                 - เปลี่ยนค่าเริ่มต้นจาก count =0  เป็น  count = 1 จากนั้นรันโปรแกรม
                 - เปลี่ยนเงื่อนไข count < 5  เป็น  count <= 5 จากนั้นสักเกตผลการรัน
                 - สลับคำสั่ง บรรทัดที่ 7 และบรรทัดที่  8  จากนั้นสังเกตผลการรัน

|1|     Module Module1
|2|    
|3|         Sub Main()
|4|             Dim count As Integer
|5|    
|6|             count = 0
|7|             While count <= 5
|8|                 count = count + 1
|9|                 Console.WriteLine("LRU is : " & count)
|10|            End While
|11|   
|12|            Console.ReadLine()
|13|        End Sub
|14|   

|15|    End Module


การแสดงผล 


**********************************************

Ex.13 คำสั่งควบคุมแบบทำซ้ำ (Loop)

เป็นคำสั่งในการควบคุมโปรแกรมให้ทำงานแบบซ้ำๆ หรือ ทำงานแบบวนรอบการจะให้โปรแกรมทำซ้ำหรือไม่นั้นจะต้องมีการตรวจสอบเงื่อนไขการทำซ้ำของโปรแกรมจะต้องประกอบไปด้วย 3 นิพจน์ คือ
    1) นิพจน์การกำหนดค่าเริ่มต้น
    2) นิพจน์การตรวจสอบเงื่อนไข
    3) นิพจน์เพิ่มค่า


VB.NET มีคำสั่งควบคุมการทำซ้ำ 6 รูปแบบ โดยการเลือกใช้คำสั่งทำซ้ำนั้นก็แล้วแต่ความเหมาะสมของชุดคำสั่งและความถนัดของผู้เขียนโปรแกรม ในที่นี้ผู้สอนได้แบ่งประเภทของคำสั่งทำซ้ำเพื่อให้นักศึกษาได้เข้าใจมากยิ่งขึ้น ดังแผนภาพ


*******************************


Ex.12 การเลือกทำแบบ Select Case

การทำงานที่ต้องมีเงื่อนไขหลายทิศทาง สามารถนำคำสั่ง if มาซ้อนๆ กัน แต่หากแยกเป็นกรณีการใช้คำสั่ง Select Case จะสะดวกกว่า โดยจะเขียนเงื่อนไขไว้หลังคำสั่ง Selected Case … และตรวจสอบเงื่อนไขกับค่าคงที่หลัก Case ที่ได้ระบุไว้

รูปแบบ 

Select Case เงื่อนไขที่
          Case ค่าที่หนึ่ง: นิพจน์คำสั่งที่ 1
          Case ค่าที่สอง: นิพจน์คำสั่งที่ 2
          Case ค่าที่สาม: นิพจน์คำสั่งที่ 3
          Case Else: นิพจน์คำสั่งที่ 4 เมื่อค่าไม่ตรงตามเงื่อนไข
End Select

ตัวอย่าง เป็นการจำลองในการเลือกตัวเลือกเมื่อต้องการ Format drive ซึ่งระบบจะมีข้อความถามเพื่อยืนยัน โดยใช้คำสั่ง if ร่วมกับตัวดำเนินการ OR เมื่อผู้ใช้กดปุ่ม “Y” หรือ “y”  และ  “N” หรือ “n” เข้าไป แต่หากผู้ใช้ป้อนผิดจะแสดงข้อผิดพลาด 

|1|     Module Module1
|2|    
|3|         Sub Main()
|4|             Dim grade As String
|5|    
|6|             Console.Write("Please input your grade:  ")
|7|             grade = Console.ReadLine
|8|    
|9|             Select Case grade
|10|                Case "A", "a" : Console.Write("Your point is 4.0")
|11|                Case "B", "b" : Console.Write("Your point is 3.0")
|12|                Case "C", "C" : Console.Write("Your point is 2.0")
|13|                Case "D", "d" : Console.Write("Your point is 1.0")
|14|                Case Else : Console.Write("Invalid input !!")
|15|            End Select
|16|   
|17|            Console.ReadLine()
|18|        End Sub
|19|    End Module


การแสดงผล  

*********************************************

 
ไม่สงวนลิขสิทธิ์บทความใดๆในบล๊อคนี้ หากท่านเห็นว่าเป็นประโยชน์..สามารถเผยแพร่ได้ตามสมควร