Insert Into Test1(colume1,colume2,........................................หากภายในนี้มีเป็นพัน colume)
เราจะมีตัวย่อได้ไหมครับ
แล้วใน Value เราจะเขียนยังไงดีครับ........
Public Class MItem
Private _itemCode As String
Private _itemName As String
Private _barCode As String
Private _unitPrice As Double
Public Property ItemCode() As String
Get
Return _itemCode
End Get
Set(ByVal value As String)
_itemCode = value
End Set
End Property
Public Property ItemName() As String
Get
Return _itemName
End Get
Set(ByVal value As String)
_itemName = value
End Set
End Property
Public Property BarCode() As String
Get
Return _barCode
End Get
Set(ByVal value As String)
_barCode = value
End Set
End Property
Public Property UnitPrice() As Double
Get
Return _unitPrice
End Get
Set(ByVal value As Double)
_unitPrice = value
End Set
End Property
Public Sub New()
_itemCode = String.Empty
_itemName = String.Empty
_barCode = String.Empty
_unitPrice = 0.0
End Sub
Public Function GetData(ByVal pItemCode As String) As Boolean
Dim isSuccess As Boolean = False
Dim query As String = "SELECT * FROM MItem WHERE ItemCode = " & gSQ(pItemCode)
Dim dt As New DataTable
dt = gGetDataTable(query)
If dt IsNot Nothing Then
If dt.Rows.Count > 0 Then
isSuccess = FillData(dt.Rows(0))
End If
dt.Dispose()
End If
GC.SuppressFinalize(dt)
dt = Nothing
GC.Collect()
Return isSuccess
End Function
Public Function SaveData() As Boolean
Dim effect As Integer = 0
Dim query As String = "INSERT INTO MItem(ItemCode,ItemName,BarCode,UnitPrice) VALUES(@itemCode,@itemName,@barCode,@unitPrice)"
Dim conString As String = "Connection String ของคุณๆท่านๆทั้งหลาย"
Dim conn As New SqlClient.SqlConnection(conString)
Try
conn.Open()
Catch ex As Exception
conn.Dispose()
conn = Nothing
Return False
End Try
Dim cmd As New SqlClient.SqlCommand(query, conn)
With cmd
.Parameters.AddWithValue("@itemCode", _itemCode)
.Parameters.AddWithValue("@itemName", _itemName)
.Parameters.AddWithValue("@barCode", _barCode)
.Parameters.AddWithValue("@unitPrice", _unitPrice)
effect = .ExecuteNonQuery
End With
conn.Close()
conn.Dispose()
conn = Nothing
cmd.Dispose()
cmd = Nothing
If effect > 0 Then
Return True
Else
Return False
End If
End Function
Private Function FillData(ByVal pDataRow As DataRow) As Boolean
Try
If Not IsDBNull(pDataRow("ItemCode")) Then
_itemCode = pDataRow("ItemCode")
End If
If Not IsDBNull(pDataRow("ItemName")) Then
_itemName = pDataRow("ItemName")
End If
If Not IsDBNull(pDataRow("BarCode")) Then
_barCode = pDataRow("BarCode")
End If
If Not IsDBNull(pDataRow("UnitPrice")) Then
_unitPrice = pDataRow("UnitPrice")
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "MItem.FillData", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End Try
Return True
End Function
Private Function gSQ(ByVal pString As String) As String
Return "'" & pString.Replace("'", "") & "'"
End Function
Private Function gGetDataTable(ByVal pQueryString As String) As DataTable
Dim connString As String = "Data Source = (local); Database = ABCD; Integrated Security = True; Persist Security Info = True"
Dim conn As New SqlClient.SqlConnection(connString)
Try
conn.Open()
Catch ex As Exception
MessageBox.Show(ex.Message, "gGetDataTable", MessageBoxButtons.OK, MessageBoxIcon.Error)
conn.Dispose()
conn = Nothing
Return Nothing
End Try
Dim cmd As New SqlClient.SqlCommand(pQueryString, conn)
Dim da As New SqlClient.SqlDataAdapter(cmd)
Dim dt As New DataTable
da.Fill(dt)
conn.Close()
conn.Dispose()
conn = Nothing
cmd.Dispose()
cmd = Nothing
da.Dispose()
da = Nothing
Return dt
End Function
End Class
คลาสข้างบนผมสมมุติว่าผมมีตารางที่เก็บข้อมูลเกี่ยวกับสินค้า
ประกอบด้วย 4 ฟิลด์ก็สร้างเป็นคุณสมบัติของคลาสไว้ (Property)
แล้วก็มีฟังก์ชั่นสำหรับทำงานในคลาสผมยกตัวอย่างไว้แค่ 2 แบบ คือ
GetData ก็คือ SELECT และ SaveData ก็คือ INSERT
สามารถไปเพิ่มได้ตามต้องการ เช่น
GetDataList ก็คือ เรียกดูข้อมูลทีละเยอะๆ คืนค่าเป็น List of MItem โดยจะเรียกดูจาก LIKE ItemCode หรือ LIKE ItemName ก็ว่าไป
DeleteData ก็คือสำหรับลบข้อมูล
UpdateData ก็คือ ปรับปรุงข้อมูล
Dim objMItem As New MItem
objMItem.ItemCode = "ITEM0001"
objMItem.ItemName = "แฟซ่าซองละ 2 บาท"
objMItem.BarCode = "8851100221144"
objMItem.UnitPrice = 2.0
If objMItem.SaveData Then
MessageBox.Show("Save Data Complete", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("Save Data Failed", "", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If