หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 5 1 2 5 0 7 5

7 ธันวาคม พ.ศ.2549
217 Users On-Line.
Visitors - Page views
 8 4 2 0 9 0 0
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

Run-Time Error 94 ... ปัญหาเล็กๆแต่สร้างความมึนงงได้เป็นอย่างดี 55555+

Category »  VB 6/VB.Net
โดย : Webmaster เมื่อ 20/10/2551 19:19:00
(อ่าน : 20113) 
ก็ห่างหายไปจากการเขียนบทความมาเป็นเวลานานพอสมควรร่วม 2 เดือน ที่ปักหลักกับงาน 2 โปรแกรม และ 1 Dynamic Web Site ก็เพื่อปากเพื่อท้องผมเองแหละครับ ... หรือ สาวๆท่านใดหัวใจว่างๆ หากสนใจก็เชิญติดต่อเข้ามาได้เลยน่ะครับ ผมรับรองว่าจะหาเลี้ยงด้วยลำแข้งของตัวผมเองเลยทีเดียว 55555+ ... เอาล่ะครับหันกลับมารับใช้เพื่อนพ้องน้องพี่กันต่อไปดีกว่า แต่ก่อนที่จะเขียนบทความนี้ก็ต้องไปสืบเสาะกับ Google เขาซ่ะก่อนล่ะว่ามีใครกล่าวถึงเรื่องนี้หรือยัง อ้อ ... ยังไม่มี ถึงมีก็คนละสไตล์ ... แหล่มๆๆๆๆ ... จะว่าไปแล้ว Run-time error 94 : Invalid use of Null ค่อนข้างจะเกี่ยวข้องกับเรื่องของฐานข้อมูลเป็นหลักอยู่แล้ว ใครที่เป็นมือใหม่ๆก็จะงงกันเป็นแถว (ยกเว้นไปลอกจากหนังสือเขามาทั้งหมด แล้วก็รันๆๆๆๆ ผ่านแล้ว ไม่มี Error ... ตูเขียนโปรแกรมเป็นแล้ว โย้วววว ... แบบนี้ก็คงจะไม่มีวันรู้หรอกครับ ... 55555+) สำหรับท่านใดที่เคยติดตามบทความเรื่อง VB6 ของผมมาโดยตลอด จะพบอะไรบางอย่างที่ประหลาดๆแตกต่างไปจากหนังสืออยู่แล้วแหละครับ เพราะ Error นี้ มันเกิดขึ้นจากตัวเราผู้เขียนโปรแกรมขึ้นมาเองไงล่ะครับ ... เราลองมาดูคำเฉลยกัน
  1. Run-time error 94 : Invalid use of Null
  1. การดัก หรือ Trap Error ... แล้วมันผิดปกติตรงไหนกันล่ะเนี่ย
  2. จากภาพ คือ การนำข้อมูลเข้ามาแสดงผลในตารางกริด แต่ติดตรงที่หาก RS("CustomerID") ไม่มีค่าใดๆเลย ก็จะเกิดปัญหา Run-time error 94 ขึ้นมาทันที
  1. ตารางฐานข้อมูลกำหนดให้ฟิลด์ CustomerID เป็นแบบ Text และ อนุญาตให้ความยาวเป็นศูนย์ได้ (คือไม่ต้องใส่ค่าอะไรเลยก็ได้) ... นี่แหละคือตัวสร้างปัญหา
  1. การแก้ปัญหาด้วยการใส่เครื่องหมาย Double Quote "" วางไว้ก่อนเพื่อเชื่อม (ด้วยเครื่องหมาย &) กับข้อมูลอีกครั้งหนึ่ง แต่เฉพาะที่เป็นตัวอักษรเท่านั้นน่ะครับ และแน่นอนว่าหาก RS("CustomerID") เป็นค่าว่างมา ก็จะไม่มี Error เกิดขึ้นเลย (ไม่ได้แปลว่าเราหลบ Error น่ะครับ)
ดังนั้นแล้วกรณีที่เก็บข้อมูลเป็นแบบ Text หรือ String ไม่ว่าจะใช้ฐานข้อมูลตัวไหนก็ตามที เราจะต้องกระทำอย่างที่ผมได้อธิบายมาแล้วข้างต้นเสมอ
นี่คือตัวอย่างของการสร้าง Bug ขึ้นมาน่ะครับ ... ลองดูที่ CustomerPK (ค่าตัวเลข - Number) ซึ่งผมทะลึ่งเอาเครื่องหมาย Double Quote ไปใส่เอาไว้ก่อน ให้นักเรียนโข่งทั้งหลายลองคิดตามไปด้วยน่ะครับว่าโอกาสที่โปรแกรมจะทำงานพลาด จะเกิดขึ้นได้อีกในกรณีไหน และ เมื่อไร หรือว่ามันจะไม่เกิด Error ใดๆขึ้นมาเลย ... 55555+
จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] หรือ โทร. 08-6862-6560