ความผิดพลาดคืออาจารย์ 2

บันทึก asp.net :: select ค่า max(id) และเช็ค IsDBNull

Posted by: -xox- on: พฤศจิกายน 22, 2008

asp.net มันไม่มี autonumber เหมือนกับใน php

ทำให้เวลาเพิ่มข้อมูลใหม่ ค่า id จะต้องเพิ่มขึ้นอีก 1

ก็นึกได้แต่วิธีบ้านๆ ด้วยการ select max ออกมา แล้วบวก 1

คิดว่ามันน่าจะมีคำสั่งอื่นที่สะดวกกว่านี้นะ

1. ประกาศตัวแปร

Public con As New SqlConnection(ConfigurationManager.ConnectionStrings(“intranetConnectionString2″).ConnectionString)
Public maxid As Integer
Public Shared msgerror As Boolean = False

2. เมื่อเพจโหลด

Dim cm_maxid As New SqlCommand(“SELECT MAX(empid)FROM tblEmployee”, con)
con.Open()


If IsDBNull(cm_maxid.ExecuteScalar()) Then
maxid = 1000
Else
maxid = CInt(cm_maxid.ExecuteScalar()) + 1
End If


con.Close()

ปล.ต้องใช้คำสั่ง IsDBNull เพื่อเช็คผลของการ select ไม่งั้น error

3. เมื่อคลิกปุ่ม submit เพื่อบันทึก

Dim ch_maxid As Integer = maxid
Dim name_th As String = txtNameTh.Text

Dim cm_addmember As New SqlCommand(“INSERT INTO tblEmployee(empid,name_thai,sname_thai,name_eng,sname_eng) VALUES(” & maxid & “,’” & txtNameTh.Text & “‘,’” & txtSnameTh.Text & “‘,’” & txtNameEng.Text & “‘,’” & txtSnameEng.Text & “‘)”, con)


con.Open()
Dim m_identity As Integer = 0
cm_addmember.ExecuteNonQuery()
con.Close()


If msgerror = False Then
Response.Write(“เพิ่มข้อมูลแล้วค่ะ”)
Response.AddHeader(“Refresh”, “5″)
End If

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Connecting to %s