Archive for the 'Programming' Category


Euro2012onsale.com seo project 0

ไม่ได้ update มาชาติกว่า งานยุ่งมาก ตอนนี้มี project ใหม่กำลังจะทำเว็บ seo หาเงินเหมือนชาวบ้านบ้าง
ซึ่งก็คลอดเป็นเว็บออกมาแล้ว

euro 2012 on sale

แต่ยังติดปัญหาอยู่ที่ว่ายังดึงราคาสินค้ามา compare ไม่ได้

ตอนแรกใช้งานได้อยู่ แต่พอแก้ไปแก้มาก็ตารางหายเลย

Toshiba 15LV505 free shipping

Toshiba 15LV505 free shipping

Validate form by prototype 1

พอดีแบบว่ามีงานนอกต้องหาเลี้ยงปากท้อง และต้องทำด้วย php ผมเลยหัดใช้ AJAX และมาหัดใช้ prototype เพราะเห็นชื่อเสียงดี ตอนแรกลังเลใจระหว่าง jQuery กับ prototype แต่ว่าพอดีเห็นพี่สุดหล่อผม พี่นพ www.nop.in.th แกใช้ prototype ฉะนั้น เลยเป็นการดีสำหรับผมที่จะเลือก prototype เผื่อเวลาติดปัญหาอะไรก็จะได้ถามแกได้ ฮ่าๆๆ ไม่เสียเวลาดี

หลังจากที่ผมเลือก prototype แล้วผมก็ดั้นด้นเองเพื่อหาตัว validate form ดีๆ มาใช้ ก็ปรากฏว่าไปเจอกับเจ้า really easy field validation (ใช่ชื่อมันมั้ยนะ ?)
หน้าหลักเค้าอยู่ที่
http://tetlaw.id.au/view/javascript/really-easy-field-validation
ส่วนหน้า demo online ลองทดสอบได้ที่
http://tetlaw.id.au/upload/pages/really-easy-field-validation/

โดยที่หน้า demo ลอง view source code ดูตัวอย่างการเขียนได้นะครับ เช่น textbox เราจะบังคับให้ User ต้องกรอกข้อมูลจะต้องเขียนว่า

<input name="field1" id="field1" class="required" title="Enter your name" />

เป็นต้น

สำหรับclass ทั้งหมดที่ใช้ validate ก็มีดังนี้ครับ

Read more »

VB.Net set focus in DataGridView for a specified row 0

เนื่องด้วยผมหา Code ให้ Grid ไป Focus Row ที่ผมต้องการเหมือนอย่าง Delphi ไม่ได้ (ภาษาถนัดนะนั่น) สงสัยเพราะผมยังใช้ Google ไม่เก่งพอ เลยหาวิธีการไม่เจอ ดังนั้นผมเลยใช้วิธีแบบบ้านๆ ที่ผมมั่วเอาเองแบบนี้ครับ

Dim intDB_RowIndex As Integer
intDB_RowIndex = CustomersBindingSource.Find("CUS_CODE", txtCustomerCode.Text)
 
If intDB_RowIndex > -1 Then
     dgView.ClearSelection()
     dgView.Rows(intDB_RowIndex).Selected = True
End If

เพียงเท่านี้ Grid ของเราก็จะไป Focus ที่ Row นั้นแล้วครับ โดยที่ถ้ามันค้นหาไม่เจอ Function Find จะ Return ออกมาเป็น -1 ครับ

ClickOnce requires that assembly xxx be installed in the GAC 0

ปัญหานี้จะเกิดกับ Application ที่ใช้วิธีการติดตั้งแบบ Click Once ครับ โดยถ้าพบ Error มีข้อความประมาณว่า

Unable to install or run the application. The application requires that assembly stdole Version 7.0.3300.0 be installed in the Global Assembly Cache (GAC) first.

Please contact your system administrator.

ให้ลองไป Include พวก Reference File ตามรูปด้านล่างนี้นะดูนะครับ

001
รูป Error

Read more »

Another MS-DTC Error 0

วันก่อนผมใช้ VB.Net เจอ Error ที่ว่า

"The transaction has already been implicitly or explicitly committed or aborted"

วิธีแก้ปัญหาของผมคือ ไปตรวจดูว่า MS DTC ถูกเปิดแล้วหรือยัง แล้วก็ไปดู Firewall ด้วย

Clear ค่า Object ต่างๆ ทุกตัวใน GroupBox 0

คำสั่งด้านล่างนี้เอาไว้สำหรับ Clear ค่าใน Object Type ต่างๆ ที่วางอยู่ใน GroupBox ครับ เช่น TextBox, RadioButton, ComboBox, NumericUpDown ถ้าอยากเพิ่มอีก ก็เพิ่มได้เลยครับดูจากตัวอย่างน่าจะพอเข้าใจ

Read more »

ตรวจสอบค่าว่าเป็นตัวเลข MSSQL 0

วันก่อนพี่แสงชัย ให้ผมตรวจสอบดูว่าในฐานขู้อมูลนี้มีค่า Serial Number แถวไหนบ้างที่มีตัวหนังสือปนอยู่ คือต้องการเก็บตัวเลขล้วนๆ

ตอนแรกผมก็ใช้คำสั่ง IsNumeric ดูปรากฏว่าก็ทำงานได้แหะ
ตัวอย่างการเรียกใช้

SELECT *
FROM TR_REC_STK_SR
WHERE ISNUMERIC(SERIAL_NO) = 0

โดย IsNumeric จะ Return 1 ให้ถ้าสามารถแปลงข้อความทั้งหมดเป็นตัวเลขได้ แต่หลังจากที่ลองค้นหาจาก Google ต่ออีกซักพัก (เพื่อความชัวร์) ปรากฏว่า คำสั่ง IsNumeric มีจุดอ่อนอยู่ เค้าแนะนำให้ใช้คำสั่งรูปแบบด้านล่างนี้แทนครับ

SELECT *, PATINDEX('%[^0-9]%', SERIAL_NO)
FROM TR_REC_STK_SR
WHERE PATINDEX('%[^0-9]%', LTRIM(RTRIM(SERIAL_NO))) > 0

ลองรันดู โอ้ว… Record เพิ่มขึ้นมาอีก 4-5 Rows ฉะนั้นถ้าจะตรวจสอบว่าข้อมูลมีแต่ตัวเลขล้วนๆ ให้ใช้แบบหลังแทนครับ

[ ] (Wildcard – Character(s) to Match) (Transact-SQL)
[^] (Wildcard – Character(s) Not to Match) (Transact-SQL)
_ (Wildcard – Match One Character) (Transact-SQL)
% (Wildcard – Character(s) to Match) (Transact-SQL)

หมายเหตุ. IsNumeric มันแปลง 1234E หรือ 1234. เป็นตัวเลขได้ครับ เลยต้องใช้ PatIndex แทน

CultureInfo 0

ตอนนี้ทำงานอยู่บริษัท ซิงเกอร์ประเทศไทย จำกัด (มหาชน) ซึ่งภาษาที่ใช้เขียนเป็น VB.Net ผมเลยได้เรียนรู้คำสั่ง VB.Net มากขึ้น ซึ่งหนึ่งในนั้นที่คิดว่าจำเป็นจะต้องใช้ ก็ได้แก่การเปลี่ยน Culture ครับ เช่น เครื่องที่ใช้งานตั้ง Regional Setting เป็นอะไรก็แล้วแต่ แต่เราสามารถเปลี่ยนให้เป็น en dd/MM/yyyy ได้ด้วยคำสั่งนี้ละครับ

1
2
3
Dim ct As New System.Globalization.CultureInfo("en-US")
ct.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy"
System.Threading.Thread.CurrentThread.CurrentCulture = ct

VB.Net กับ Thread 2

หากต้องการทำงานแล้วแสดงผลให้ User บนหน้าจอแล้วละก็ Thread เป็นทางเลือกนึงครับ
ดังตัวอย่าง

Read more »

VB.Net กับการบังคับป้อนแต่ตัวเลข 0

บางกรณีเราอยากใช้ TextBox เพื่อรับค่าจาก User และจะบังคับให้ป้อนได้ตัวเลขเท่านั้น โค้ดนี้เป็นอีกรูปแบบนึง

1
2
3
4
5
6
7
8
9
10
11
Private Sub txtSalary_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSalary.KeyPress
e.Handled = TrapKey(Asc(e.KeyChar))
End Sub
 
Private Function TrapKey(ByVal KCode As String) As Boolean
If (KCode >= 48 And KCode <= 57) Or KCode = 8 Then
TrapKey = False
Else
TrapKey = True
End If
End Function

User จะป้อนได้แต่ตัวเลข และกดเครื่องหมาย Backspace ได้