Import dữ liệu từ Excel và cập nhật lên SQL
Trong bài viết này mình sẽ giới thiệu các bạn cách để Import dữ liệu từ Excel rồi sau đó Insert nhanh chóng những dữ liệu đó lên SQL Đầu tiên các bạn tạo Table trên SQL như ví dụ sau Thiết kế file Excel đơn giản như hình sau Kế tiếp là ...
Trong bài viết này mình sẽ giới thiệu các bạn cách để Import dữ liệu từ Excel rồi sau đó Insert nhanh chóng những dữ liệu đó lên SQL
Đầu tiên các bạn tạo Table trên SQL như ví dụ sau
Thiết kế file Excel đơn giản như hình sau
Kế tiếp là thiết kế Form như hình bên dưới
Nhớ thêm thư viện:
using System.Data.OleDb;
Tiếp theo là sự kiện của nút Import từ Excel. Để cho đơn giản mình để file Test.xls trong ổ C. Và chú ý là [DanhSach$] là tên của Sheet trong file Excel
DataSet dsTest = new DataSet(); private void btnExcel_Click(object sender, EventArgs e) { OleDbConnection olecon = new OleDbConnection(); string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:Test.XLS;Extended Properties=Excel 8.0"; olecon.ConnectionString = strCon; olecon.Open(); string strSQL = "SELECT * FROM [DanhSach$]"; OleDbDataAdapter oleda = new OleDbDataAdapter(strSQL, olecon); oleda.Fill(dsTest); olecon.Close(); dsTest.Tables[0].TableName = "TEST";//Tên này phải giống với tên của Table trên SQL dataGridView1.DataSource = dsTest.Tables[0]; }
Cuối cừng là nút để cập nhật dữ liệu vào SQL. Trong Bài 2 - Đơn giản hóa lập trình ADO.NET sử dụng SqlBulkCopy mình có giới thiệu cách để Insert nhanh dữ liệu lên SQL, các bạn tham khảo lại nha vì bây giờ mình chỉ cần sử dụng lại thôi
private void btnSQL_Click(object sender, EventArgs e) { if(!ExecBulkCopy(dsTest.Tables[0], "TEST")) MessageBox.Show("Không thành công!","Laptrinhvb.net"); else MessageBox.Show("Đã thực hiện thành công!", "Laptrinhvb.net"); }
Chú ý: Số cột trong DataTable phải bằng và giống tên với Table TEST trên SQL nha các bạn.
Và bây giờ là thành quả sau khi Insert xong
Chúc các bạn vui và thực hiện thành công. Nếu có thắc mắc hãy comment bên dưới nhé!
Link download nếu bạn làm biếng code lại