5
Cp nht CSDL ngay trên DataGridView trong VB.Net - Mt DataBase bao gm 1 bng NhanVien và cha các ct sau: + Chèn dli u tm thi vào trong bng: - Form + Các đối tượng điều khi n: 1 datagridview và 4 button Đối tượng điề u khin Tên biế n Text DataGridVie w dtgrvCapNhat Button btLuu Lưu Button btXoa Xóa Button btHienThi(refresh) Hi n thButton btThoat Thoát

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

Embed Size (px)

Citation preview

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

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

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

+ 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"

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

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 ý:

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

'+ 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

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

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