บันทึก asp.net :: select ค่า max(id) และเช็ค IsDBNull
Posted พฤศจิกายน 22, 2008
on: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.TextDim 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
ใส่ความเห็น