- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
- Hướng dẫn khóa file bằng nhiều process id, không cho xóa tập tin
- Hướng dẫn cách tạo Product Id cho ứng dụng phần mềm XXXXX-XXXXX-XXXXX-XXXXX
Hướng dẫn chỉnh sửa form trên grid view sử dụng Edit Form User Control trong Devexpress
Hôm nay, mình xin hướng dẫn các bạn chỉnh sửa thông tin database trực tiếp trên grid view của Devexpress, sử dụng công cụ Edit Form User Control.
+ Với chức năng này, chúng ta có thể chỉnh sửa tuỳ biến dễ dàng.
+ Chức năng các bạn có thể ứng dụng để viết cho chương trình quản lý nhân sự.
Demo của ứng dụng:
- Nói tóm lại, mình sẽ tạo ra user control sau đó, add user control đó vào grid view, khi click vào sự kiện edit.
Đầu tiên, các bạn tạo database với đoạn code bên dưới, để có thể insert database. Vì demo của mình có sử dụng hình ảnh.
Các bạn cũng có thể tham khảo câu lệnh bên dưới để chèn hình ảnh vào database, sử dụng câu lệnh T-Sql
create database sinhvien
go
use sinhvien
go
create table tbl_sv(
id int primary key identity,
name nvarchar(50),
birthday date,
[address] nvarchar(150),
[image] varbinary(max)
)
go
insert into tbl_sv
select N'Nguyễn Thảo', '19880328', N'290 Nơ Trang Long, Bình Thạnh, HCMC', bulkcolumn
from openrowset( bulk 'I:
guyenthao.jpg', single_blob) as BLOB
go
insert into tbl_sv
select N'Võ Sơn Băng', '19880101', N'180 Tô Hiến Thành, Quận 10, HCMC', bulkcolumn
from openrowset( bulk 'I:sonbang.jpg', single_blob) as BLOB
go
insert into tbl_sv
select N'Cái Trí Minh', '19870313', N'KP8, Phường Long Bình, Đồng Nai', bulkcolumn
from openrowset( bulk 'I:caitriminh.jpg', single_blob) as BLOB
go
insert into tbl_sv
select N'Hoàng Thị Thảo', '19950228', N'310 Đặng Văn Bi, Quận Thủ Đức, HCMC', bulkcolumn
from openrowset( bulk 'I:hoangthithao.jpg', single_blob) as BLOB
go
insert into tbl_sv
select N'Nguyễn Đình Tuyên', '19910805', N'320 Đồng Khởi, Hố Nai 3, Đồng Nai', bulkcolumn
from openrowset( bulk 'I:
guyendinhtuyen.jpg', single_blob) as BLOB
go
select * from tbl_sv
1. Ta thiết kế form cho giao diện chính:
Source code cho Form 1:
Imports System.ComponentModel
Imports System.Text
Imports System.Data.SqlClient
Imports DevExpress.XtraGrid.Views.Grid
Imports System.IO
Partial Public Class Form1
Inherits DevExpress.XtraEditors.XtraForm
Shared Sub New()
DevExpress.UserSkins.BonusSkins.Register()
DevExpress.Skins.SkinManager.EnableFormSkins()
End Sub
Public Sub New()
InitializeComponent()
End Sub
Dim con As New SqlConnection
Dim dsSinhvien As DataSet
Dim svDataAdapter As SqlDataAdapter
Public Sub Taoketnoi()
Dim str As String = "Data Source=.;Initial Catalog=sinhvien;Integrated Security=True"
con.ConnectionString = str
con.Open()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Taoketnoi()
Dim dsSinhvien As New DataSet
Dim svDataAdapter As New SqlDataAdapter("select * from tbl_sv", con)
Dim commandBuilder As New SqlCommandBuilder(svDataAdapter)
svDataAdapter.Fill(dsSinhvien, "sinhvien")
GridControl1.DataSource = dsSinhvien.Tables("sinhvien")
GridView1.OptionsView.RowAutoHeight = False
GridView1.OptionsView.ShowGroupPanel = False
GridView1.OptionsView.ShowVerticalLines = DevExpress.Utils.DefaultBoolean.False
GridView1.RowHeight = 120
GridView1.OptionsEditForm.ShowUpdateCancelPanel = DevExpress.Utils.DefaultBoolean.False
GridView1.OptionsEditForm.CustomEditFormLayout = New editForm(GridView1)
End Sub
Private Sub GridView1_RowUpdated(sender As Object, e As DevExpress.XtraGrid.Views.Base.RowObjectEventArgs) Handles GridView1.RowUpdated
Dim rowIdex As Integer = e.RowHandle
Dim view As GridView = TryCast(sender, GridView)
Dim datarow = view.GetDataRow(rowIdex)
'update to database
Dim id As String = CType(datarow.Item("id"), String)
Dim name As String = CType(datarow.Item("name"), String)
Dim birthday As Date = CType(datarow.Item("birthday"), date)
Dim address As String = CType(datarow.Item("address"), String)
Dim arrhinh() As Byte = CType(datarow.Item("image"), Byte())
Dim strsql As String = "UPDATE tbl_sv SET image=@image, name=@name, birthday=@birthday, address=@address WHERE id=@id"
Dim cmd As New SqlCommand(strsql, con)
cmd.Parameters.Add(New SqlParameter("@image", arrhinh))
cmd.Parameters.Add(New SqlParameter("@id", id))
cmd.Parameters.Add(New SqlParameter("@name", name))
cmd.Parameters.Add(New SqlParameter("@birthday", birthday))
cmd.Parameters.Add(New SqlParameter("@address", address))
cmd.ExecuteNonQuery()
End Sub
End Class
Bước 2: Chúng ta tạo thêm 1 user control và thiết kế lại giao diện chỉnh sửa theo ý mình
Source code cho user control
Imports DevExpress.XtraGrid.Views.Grid
Public Class editForm
Private _MyView As GridView = Nothing
Public Property MyView As GridView
Get
Return _MyView
End Get
Set(value As GridView)
_MyView = value
End Set
End Property
Public Sub New()
' This call is required by the designer.
InitializeComponent()
End Sub
Public Sub New(view As GridView)
MyView = view
InitializeComponent()
End Sub
Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click
MyView.PostEditor()
MyView.CloseEditForm()
End Sub
Private Sub SimpleButton2_Click_1(sender As Object, e As EventArgs) Handles SimpleButton2.Click
MyView.CloseEditForm()
End Sub
End Class
CHÚC CÁC BẠN THÀNH CỐNG!