 |
|
สำหรับคนเริ่มต้นเขียนได้ไม่นาน
ขออนุญาตแนะนำ Code ในส่วนของการบันทึกข้อมูล
ตัวอย่างที่ยกมานี้
เราได้สร้าง DataSet ชื่อ TestDataSet ขึ้นมาแล้ว
และ TestDataSet ประกอบด้วย Table1
Table1 มี Primary Key ชื่อ PK และมิได้กำหนดเป็น Indentity Number
ตัวอย่างนี้
- เป็นการเพิ่ม/แก้ไข/ลบข้อมูลของตาราง Table1
- dsTest คือ Instance ของ TestDataSet ซึ่งเป็น Component ของฟอร์ม
- จะบันทึกผู้แก้ไข วันที่แก้ไข ผู้เพิ่มรายการ วันที่เพิ่มรายการ
- ในฟอร์มนี้เหมาะกับกรณีที่ Table1 ถูกลิงค์กับ DataGridView
Code (VB.NET)
Try
Dim SQL As String, NewID As Integer, SysDate As Date
Dim da As New Table1TableAdapter
Dim dtable As TestDataSet.Table1DataTable = me.dsTest.Table1
da.Connection.Open()
' อ่าน Primary ตัวสุดท้าย
Dim sqlCmd As SqlCommand = da.Connection.CreateCommand()
SQL = "SELECT PK=ISNULL((SELECT TOP 1 x.PK FROM Table1 ORDER BY x.PK DESC),0), SysDate=GETDATE()"
sqlCmd.CommandText = SQL
Dim dread As SqlDataReader = sqlCmd.ExecuteReader()
If dread.Read() Then
NewID = dread("PK")
SysDate = dread("SysDate")
End If
dread.Close()
Dim stErr As String = ""
Dim blUpdate As Boolean
' ลูบเพื่ออัพเดต PK, usrInsert, dtInsert, usrModify, dtModify
For Each drow dtable.Rows
blUpdate = False
' ส่วนของการ Validate ข้อมูล
If (drow.RowState And 20) > 0 Then
' มีการแก้ไขหรือเพิ่มข้อมูล
If <เงื่อนไขตรวจสอบความถูกต้องของข้อมูล 1> Then stErr += vbCrLf +"- ข้อผิดพลาด 1"
If <เงื่อนไขตรวจสอบความถูกต้องของข้อมูล 2> Then stErr += vbCrLf +"- ข้อผิดพลาด 2"
If stErr<>"" Then Throw New Exception(stErr)
blUpdate = True
End If
' ส่วนของการ Update User และวันที่
If blUpdate Then
If drow.RowState = DataRowStat.Added Then
NewID += 1
drow("PK") = NewID
drow("usrInsert") = My.User.Name
drow("dtInsert") = SysDate
End If
drow("usrModify") = My.User.Name
drow("dtModify") = SysDate
End If
Next
da.Update(dtable)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Tag : .NET, Ms SQL Server 2005, Win (Windows App), VS 2005 (.NET 2.x)
|
|
 |
 |
 |
 |
Date :
2010-11-19 10:20:23 |
By :
watcharop |
View :
1705 |
Reply :
1 |
|
 |
 |
 |
 |
|
|
|
 |