02/10/2018, 00:03

Cập nhật hình ảnh xuống SQL

Bài viết này mình sẽ giới thiệu các bạn cách lưu hình ảnh xuống database SQL như thế nào. Trước tiên bạn thiết kế data như sau : Bạn thiết form theo mẫu sau: Ở bài viết này mình sẽ nhấn mạnh vào cách lưu hình ảnh xuống SQL như thế nào. ...

Bài viết này mình sẽ giới thiệu các bạn cách lưu hình ảnh xuống database SQL như thế nào. Trước tiên bạn thiết kế data như sau

:

Bạn thiết form theo mẫu sau:

Cập nhật hình ảnh xuống SQL

Ở bài viết này mình sẽ nhấn mạnh vào cách lưu hình ảnh xuống SQL như thế nào.

- Trước tiên bạn kéo công cụ OpenFileDialog để mở các file hình ảnh. Tại sự kiện Double_Click của PictureBox ta viết sau:

Private Sub PictureBox1_DoubleClick(sender As Object, e As EventArgs) Handles PictureBox1.DoubleClick
        OpenFileDialog1.Filter = "Select Images |*.jpg||*.png" 'Lọc lấy file hình ảnh có phần mở rộng *.jpg, *.png
        If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            PictureBox1.Load(OpenFileDialog1.FileName)
        End If
End Sub

Sau khi chọn hình xong và nó load lên đối tượng PictureBox, bước tiếp theo ta lưu hình này xuống data viết thủ tục sau:

 Public Sub save_HinhNhanVien()
        Dim mshinh As New MemoryStream
        PictureBox1.Image.Save(mshinh, PictureBox1.Image.RawFormat)
        Dim arrhinh() As Byte = mshinh.GetBuffer()
        mshinh.Close()

        Dim strsql As String = "update tbl_nhanvien set hinh=@hinh where manv=@manv"
        CreateConnectSQL()
        Dim cmd As New SqlCommand(strsql, strConnectString)
        cmd.Parameters.Add(New SqlParameter("@hinh", arrhinh))
        cmd.Parameters.Add(New SqlParameter("@manv", txtMaNV.Text))
        cmd.ExecuteNonQuery()
        strConnectString.Close()
End Sub

Tiếp đó tại sự kiện nút lưu ta viết như sau, ở đây mình không đề cập đến các câu lệnh update, save, delete.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If txtMaNV.Text.Length > 0 Then
            If txtHoTen.Text.Length > 0 Then
                Dim i As Integer = CheckID("select count(*) from tbl_nhanvien where manv='" & txtMaNV.Text & "'")
                If i = 0 Then 'Kiểm tra nếu mã nhân viên trùng thì cập nhật
                    _Save("insert into tbl_nhanvien(manv,hoten,ngaysinh,noisinh,diachi) values ('" & txtMaNV.Text & "',N'" & txtHoTen.Text & "','" & txtNgaySinh.Text & "',N'" & txtNoiSinh.Text & "',N'" & txtDiaChi.Text & "')")
                Else
                    _Save("update tbl_nhanvien set hoten=N'" & txtHoTen.Text & "',ngaysinh='" & txtNgaySinh.Text & "',noisinh=N'" & txtNoiSinh.Text & "',diachi=N'" & txtDiaChi.Text & "' where manv='" & txtMaNV.Text & "'")
                End If

                Try
                    save_HinhNhanVien() 'Cập nhật hình ảnh
                Catch ex As Exception
                    MessageBox.Show(ex.Message, "Image")
                End Try
                ClearText()
                loadData()
            Else
                MessageBox.Show("Tên nhân viên không được bỏ trống")
                txtHoTen.Focus()
            End If
        Else
            MessageBox.Show("Mã nhân viên không được bỏ trống")
            txtMaNV.Focus()
        End If
End Sub

- Bước tiếp theo load hình ảnh lên form, tại sự kiện TextChanged của txt_MaNV ta viết như sau:

Private Sub txtMaNV_TextChanged(sender As Object, e As EventArgs) Handles txtMaNV.TextChanged
        Try
            Dim arrhinh() As Byte = CType(load_HinhNhanVien(txtMaNV.Text).Tables(0).Rows(0)("hinh"), Byte())
            Dim mshinh As New MemoryStream(arrhinh)
            PictureBox1.Image = Image.FromStream(mshinh)
        Catch ex As Exception
            '   MessageBox.Show(ex.Message, "Image", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        End Try
End Sub

- Xong rồi đấy, nhấn F5 để thưởng thức kết quả nao :v

Download Project

Tags:
0