Cập nhật CSDL ngay trên DataGridView trong VB.Net
- Một DataBase bao gồm 1 bảng NhanVien và chứa các cột sau:
+ Chèn dữ liệu tạm thời vào trong bảng:
- Form
+ Các đối tượng điều khiển: 1 datagridview và 4 button
Đối tượng điều khiển Tên biến Text
DataGridView dtgrvCapNhat
Button btLuu Lưu
Button btXoa Xóa
Button btHienThi(refresh) Hiển thị
Button btThoat Thoát
+ Giao diện
- Code
Imports System.Data.SqlClient
Imports System.Data
Public Class CapNhat
Private kn As SqlConnection
Private dtb As DataTable
Private icn As Integer
Private dts As DataSet
Private adt As SqlDataAdapter
Private cm As SqlCommand
Private cmb As SqlCommandBuilder
Private Sub CapNhat_Load(sender As Object, e As EventArgs) _
Handles MyBase.Load
kn = New SqlConnection()
kn.ConnectionString = "Data Source=(LocalDB)v11.0;" _
& "AttachDbFilename=c:usersanhmattroidocuments" _
& "visual studio 2012ProjectsCNCSDLCNCSDLCSDLDatabase.mdf;" _
& "Integrated Security=True"
dts = New DataSet()
dtb = New DataTable()
cm = New SqlCommand()
cmb = New SqlCommandBuilder()
Try
kn.Open()
adt = New SqlDataAdapter("select * from NhanVien", kn)
adt.Fill(dts)
dtb = dts.Tables(0)
dtgrvCapNhat.DataSource = dtb
Catch ex As Exception
MessageBox.Show(ex.ToString(), "Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
kn.Dispose()
Application.Exit()
End Try
icn = 0
End Sub
Private Sub btThoat_Click(sender As Object, e As EventArgs) _
Handles btThoat.Click
Application.Exit()
End Sub
Private Sub CapNhat_FormClosing(sender As Object, e As FormClosingEventArgs) _
Handles MyBase.FormClosing
If kn.State = ConnectionState.Open Then
kn.Close()
End If
End Sub
Private Sub btLuu_Click(sender As Object, e As EventArgs) _
Handles btLuu.Click
Try
cm.CommandText = "select * from NhanVien"
cm.Connection = kn
adt.SelectCommand = cm
cmb.DataAdapter = adt
adt.Update(dtb)
Catch loi As Exception
MsgBox(loi.ToString)
End Try
End Sub
'Nếu bạn chỉ muốn lưu cột MaNV, HoTen thì ở biến cm. CommandText = "select MaNV, HoTen
from NhanVien".
'Lưu ý:
'+ Các cột không được chọn ở cm.CommandText phải để thuộc tính NULL lúc tạo cơ sở dữ liệu
'+ Biến DataTable mà 1 biến của DataGridView .DataSource chỏ tới ko được thay đổi dữ liệu
'trong biến này. Vì khi bạn chỉnh sửa trên DataGridView thì bảng dữ liệu
'DataGridView chỏ tới( bằng lệnh <tên biến của DataGridView>.DataSource = <biến của
DataTable>) cũng bị thay đổi theo
'=> Bạn muốn lưu cột nào chỉ cần viết tên cột vào cm.CommandText = "select <tên các cột
muốn lưu> from <từ bảng nào>"
Private Sub btXoa_Click(sender As Object, e As EventArgs) _
Handles btXoa.Click
If icn > -1 And icn < dtgrvCapNhat.RowCount - 1 Then
Try
cm.CommandText = "select * from NhanVien"
cm.Connection = kn
adt.SelectCommand = cm
cmb.DataAdapter = adt
dtgrvCapNhat.Rows.RemoveAt(icn) 'xóa 1 hàng tại chỉ số icn
If icn = dtgrvCapNhat.RowCount - 1 Then
icn = icn - 1
End If
dtgrvCapNhat.Rows(icn).Selected = True
adt.Update(dtb)
Catch loi As Exception
MsgBox(loi.ToString)
End Try
End If
End Sub
Private Sub dtgrvCapNhap_CellClick(sender As Object, _
e As DataGridViewCellEventArgs) Handles dtgrvCapNhat.CellClick
icn = e.RowIndex 'lấy chỉ số hàng khi click vào 1 hàng trên DataGridView
End Sub
Private Sub btHienThi_Click(sender As Object, e As EventArgs) _
Handles btHienThi.Click
Try
cm.CommandText = "select * from NhanVien"
cm.Connection = kn
adt.SelectCommand = cm
dtb.Clear()
adt.Fill(dts)
dtb = dts.Tables(0)
dtgrvCapNhat.DataSource = dtb
icn = 0
Catch ex As Exception
MessageBox.Show(ex.ToString(), "Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
icn = -1
End Try
End Sub
End Class
Link tải project:
http://www.mediafire.com/download/97343vcwc04lral/CNCSDL.rar

Cập nhật csdl ngay trên datagridview trong vb

  • 1.
    Cập nhật CSDLngay trên DataGridView trong VB.Net - Một DataBase bao gồm 1 bảng NhanVien và chứa các cột sau: + Chèn dữ liệu tạm thời vào trong bảng: - Form + Các đối tượng điều khiển: 1 datagridview và 4 button Đối tượng điều khiển Tên biến Text DataGridView dtgrvCapNhat Button btLuu Lưu Button btXoa Xóa Button btHienThi(refresh) Hiển thị Button btThoat Thoát
  • 2.
    + Giao diện -Code Imports System.Data.SqlClient Imports System.Data Public Class CapNhat Private kn As SqlConnection Private dtb As DataTable Private icn As Integer Private dts As DataSet Private adt As SqlDataAdapter Private cm As SqlCommand Private cmb As SqlCommandBuilder Private Sub CapNhat_Load(sender As Object, e As EventArgs) _ Handles MyBase.Load kn = New SqlConnection() kn.ConnectionString = "Data Source=(LocalDB)v11.0;" _ & "AttachDbFilename=c:usersanhmattroidocuments" _ & "visual studio 2012ProjectsCNCSDLCNCSDLCSDLDatabase.mdf;" _ & "Integrated Security=True"
  • 3.
    dts = NewDataSet() dtb = New DataTable() cm = New SqlCommand() cmb = New SqlCommandBuilder() Try kn.Open() adt = New SqlDataAdapter("select * from NhanVien", kn) adt.Fill(dts) dtb = dts.Tables(0) dtgrvCapNhat.DataSource = dtb Catch ex As Exception MessageBox.Show(ex.ToString(), "Error", _ MessageBoxButtons.OK, MessageBoxIcon.Error) kn.Dispose() Application.Exit() End Try icn = 0 End Sub Private Sub btThoat_Click(sender As Object, e As EventArgs) _ Handles btThoat.Click Application.Exit() End Sub Private Sub CapNhat_FormClosing(sender As Object, e As FormClosingEventArgs) _ Handles MyBase.FormClosing If kn.State = ConnectionState.Open Then kn.Close() End If End Sub Private Sub btLuu_Click(sender As Object, e As EventArgs) _ Handles btLuu.Click Try cm.CommandText = "select * from NhanVien" cm.Connection = kn adt.SelectCommand = cm cmb.DataAdapter = adt adt.Update(dtb) Catch loi As Exception MsgBox(loi.ToString) End Try End Sub 'Nếu bạn chỉ muốn lưu cột MaNV, HoTen thì ở biến cm. CommandText = "select MaNV, HoTen from NhanVien". 'Lưu ý:
  • 4.
    '+ Các cộtkhông được chọn ở cm.CommandText phải để thuộc tính NULL lúc tạo cơ sở dữ liệu '+ Biến DataTable mà 1 biến của DataGridView .DataSource chỏ tới ko được thay đổi dữ liệu 'trong biến này. Vì khi bạn chỉnh sửa trên DataGridView thì bảng dữ liệu 'DataGridView chỏ tới( bằng lệnh <tên biến của DataGridView>.DataSource = <biến của DataTable>) cũng bị thay đổi theo '=> Bạn muốn lưu cột nào chỉ cần viết tên cột vào cm.CommandText = "select <tên các cột muốn lưu> from <từ bảng nào>" Private Sub btXoa_Click(sender As Object, e As EventArgs) _ Handles btXoa.Click If icn > -1 And icn < dtgrvCapNhat.RowCount - 1 Then Try cm.CommandText = "select * from NhanVien" cm.Connection = kn adt.SelectCommand = cm cmb.DataAdapter = adt dtgrvCapNhat.Rows.RemoveAt(icn) 'xóa 1 hàng tại chỉ số icn If icn = dtgrvCapNhat.RowCount - 1 Then icn = icn - 1 End If dtgrvCapNhat.Rows(icn).Selected = True adt.Update(dtb) Catch loi As Exception MsgBox(loi.ToString) End Try End If End Sub Private Sub dtgrvCapNhap_CellClick(sender As Object, _ e As DataGridViewCellEventArgs) Handles dtgrvCapNhat.CellClick icn = e.RowIndex 'lấy chỉ số hàng khi click vào 1 hàng trên DataGridView End Sub Private Sub btHienThi_Click(sender As Object, e As EventArgs) _ Handles btHienThi.Click Try cm.CommandText = "select * from NhanVien" cm.Connection = kn adt.SelectCommand = cm dtb.Clear() adt.Fill(dts) dtb = dts.Tables(0) dtgrvCapNhat.DataSource = dtb icn = 0 Catch ex As Exception
  • 5.
    MessageBox.Show(ex.ToString(), "Error", _ MessageBoxButtons.OK,MessageBoxIcon.Error) icn = -1 End Try End Sub End Class Link tải project: http://www.mediafire.com/download/97343vcwc04lral/CNCSDL.rar