Upload
anhmattroi
View
2.131
Download
2
Embed Size (px)
Citation preview
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:\users\anhmattroi\documents\" _
& "visual studio 2012\Projects\CNCSDL\CNCSDL\CSDL\Database.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