Private Sub AddParameters(ByVal sql As String)
command.Parameters.Clear()
command.CommandText = sql
command.Parameters.AddWithValue("id", SqlDbType.Int).Value = txtID.Text
command.Parameters.AddWithValue("title", SqlDbType.NVarChar).Value = ComboTitle.Text
command.Parameters.AddWithValue("name", SqlDbType.NVarChar).Value = txtName.Text
command.Parameters.AddWithValue("address", SqlDbType.NVarChar).Value = txtAddress.Text
command.Parameters.AddWithValue("tel", SqlDbType.NVarChar).Value = txtTel.Text
If Not (PictureBox1.Image Is Nothing) Then
Dim memStream As New IO.MemoryStream()
PictureBox1.Image.Save(memStream, Drawing.Imaging.ImageFormat.Bmp)
Dim pic() As Byte = memStream.ToArray()
command.Parameters.AddWithValue("pic", SqlDbType.Image).Value = pic
End If
End Sub
Private Sub ButtonSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSave.Click
'-- สร้างคำสั่ง SQL สำหรับการเพิ่มข้อมูลแบบใช้พารามิเตอร์
sql = "INSERT INTO Customer(CusID, CusTitle, CusName, CusAddress, CusTel)" & _
"VALUES(@id, @title, @name, @address, @tel)"
sql = "INSERT INTO Customer"
If Not (PictureBox1.Image Is Nothing) Then
sql &= "(CusID, CusTitle, CusName, CusAddress, CusTel, CusPic) "
sql &= "VALUES(@id, @title, @name, @address, @tel, @pic)"
Else
sql &= "(CusID, CusTitle, CusName, CusAddress, CusTel) "
sql &= "VALUES(@id, @title, @name, @address, @tel)"
End If
AddParameters(sql)
Dim result As Integer = command.ExecuteNonQuery()
If result = -1 Then
MessageBox.Show("เกิดข้อผิดพลาด ไม่สามารถเพิ่มข้อมูลได้")
Else
MessageBox.Show("บันทึกข้อมูลแล้ว")
'-- หลังการเพิ่มข้อมูล ให้กลับสู่การแสดงผลปกติ ซึ่งเราต้องอ่านข้อมูลมาแสดงใหม่
'-- โดยขั้นตอนนี้จะมีวิธีการเหมือนกับการยกเลิกการเพิ่มข้อมูล ดังนั้นเพื่อไม่ต้องเขียนโค้ดซ้ำซ้อนกัน
'-- เราก็สั่งให้ปุ่มเพิ่มข้อมูล(ซึ่งขณะนี้ความบนปุ่มคือ "ยกเลิก")ถูกคลิกโดยอัตโนมัติ ให้เกิดการตอบสนองแบบเดียวกัน
ButtonAdd.PerformClick()
End If
End Sub