SqlCommandBuilder với Insert, Update và Delete dữ liệu từ DataGridview đến Database
14:00 ngày 27-10-2017
Dưới đây là ví dụ để Insert, Update và Delete dự liệu trong database từ DataGridview. Với ví dụ này, chúng ta có thể sửa, xóa, thêm dữ liệu trực tiếp trên Gridview. Những thay đổi trên Gridview sẽ thông qua DataSource cập nhật trực tiếp lên DataTable. Sau khi bấm Save, DataAdapter sẽ gọi hàm Update cho DataTable, dữ liệu sẽ được cập nhật vào Database.
Luồng dữ liệu được thể hiện như sau
DataGridview <=> DataSource <=> DataTable <=> DataAdapter <=> Database
- Ở chiều View: Dữ liệu từ database sẽ được DataAdapter thông qua SelectCommand
sẽ Fill vào DataTable. DataTable được gán cho DataSource của Gridview. Sau đó dữ liệu được Bind
lên View
- Ở chiều hiệu chỉnh: Dữ liệu được người dùng xóa, sửa hay thêm trực tiếp lên Gridview. Những thay đổi này sẽ cập nhật trưc tiếp DataTable (được chỉ định thông qua DataSource). Thông qua DataAdapter, hàm update
sẽ cập nhật dữ liệu từ DataTable vào Database
Script tạo Table
USE [Test]
GO
/****** Object: Table [dbo].[Customers] Script Date: 10/27/2017 2:38:06 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Customers](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](500) NULL,
[Address] [nvarchar](500) NULL,
[Note] [nvarchar](500) NULL,
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Form1.css file
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace DataGridViewAndSQLExample
{
public partial class Form1 : Form
{
private string connectionString = "Data Source=.;Initial Catalog=Test;Integrated Security=True";
private string selectQueryString = "SELECT * FROM Customers";
private SqlConnection connection = null;
private SqlDataAdapter dataAdapter = null;
private DataTable dataTable = null;
public Form1()
{
InitializeComponent();
}
private void ReLoadData()
{
try
{
connection.Open();
dataTable.Clear();
dataAdapter.Fill(dataTable);
dataGridView1.DataSource = dataTable;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
connection.Close();
}
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
connection = new SqlConnection(connectionString);
connection.Open();
dataAdapter = new SqlDataAdapter(selectQueryString, connection);
var sqlCommandBuilder = new SqlCommandBuilder(dataAdapter);
dataTable = new DataTable();
dataAdapter.Fill(dataTable);
dataGridView1.DataSource = dataTable;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
connection.Close();
}
}
private void btSave_Click(object sender, EventArgs e)
{
try
{
connection.Open();
dataAdapter.Update(dataTable);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
connection.Close();
}
ReLoadData();
}
}
}
Link dowload source tại đây
Viết Phản Hồi
Chuyên Mục
- Android (0)
- C#, ASP.Net (4)
- C, C++ (0)
- HTML, CSS, JavaScript (5)
- Database (1)
- Linh Tinh (2)
Bài Viết Mới
- Kế thừa và từ khóa virtual trong c#
- Base64 và Cache Image trong LocalStorage
- PerformanceNavigation và cách thức truy cập Website (Page)
- SqlCommandBuilder với Insert, Update và Delete dữ liệu từ DataGridview đến Database
- Kết nối SQLite bằng Entity framework
- SQL SERVER: Sử dụng INDEX để tăng tốc độ thực thi câu truy vấn
- MachineKey là gì
- HTML5 Web Workers là gì
- Lưu trữ cục bộ trong HTML5: Local Storage và Session Storage
- Angular Tree
Phản Hồi Mới
-
Angular Tree
ad
-
Kế thừa và từ khóa virtual trong c#
ssd
-
Sử dụng chrome trong lập trình web
Thèn Khương nói tào lao quá
-
Angular Tree
content mà mè mmex nè ne
- Các định lý của đại số logic (Boolean) Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
- Các định lý của đại số logic (Boolean) Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
- Các định lý của đại số logic (Boolean) Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
- Các định lý của đại số logic (Boolean) Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Phản Hồi