Học Lập Trình

Tương tác dữ liệu với SqlDataAdapter trong c#

Hướng dẫn Tương tác dữ liệu với SqlDataAdapter thêm, sửa , xóa dữ liệu từ c#

Nội dùng chính:

Tạo đối tượng SqlDataAdapter
Nạp dữ liệu vào Dataset
Cập nhật dữ liệu với SqlDataAdapter

DataSet để xử lý kết quả kết hợp với DataAdapter. Không giống với DataReader, tạo ra các đối tượng dùng interface System.DataIDataReader, thì DataSet là một thành phần đặc trưng của ADO.NET được sử dụng bởi tất cả các nhà cung cấp dữ liệu (data provider). Dataset có thể hoàn toàn độc lập và sử dụng khi kết nối hoặc ngắt kết nối khỏi nguồn. Mục đích cơ bản của DataSet là cung cấp xử lý xem xét dữ liệu lưu trữ trong một ‘memory cache’. Nếu như một DataSet không kết nối tới cơ sở dữ liệu thì làm sao mà xử lý dữ liệu và save lại vào database ? Đây là lí do mà DataAdapter ra đời. Hãy nghĩ DataAdapter chính là một chiếc cầu nối giữa DataSet và Data Source. Nếu không có một DataAdapter nào thì DataSet không thể truy cập bất cứ DataSource nào. DataAdapter đảm bào việc kết nối và truyền thông tin cho DataSet.

DataSet trong ADO.NET là một bước phát triển lớn trong việc phát triển ứng dụng cơ sở dữ liệu đa hệ. Khi lấy và chỉnh sửa dữ liệu, duy trì liên tục kết nối tới Data Source trong khi chờ user yêu cầu thì rõ ràng là tốn tài nguyên máy rất nhiều.

DataSet giúp ích ở đây rất lớn. Vì DataSet cho phép lưu trữ dữ liệu và chỉnh sửa tại ‘local cache’, hay gọi là offline mode. Có thể xem xét và xử lý thông tin trong khi ngắt kết nối. Sau khi chỉnh sửa và xem xong thì tạo một kết nối và update dữ liệu từ local vào Data Source.
Dữ liệu trong DataSet được lưu trữ dưới dạng một Collection các Tables và bạn cần phải xử lý thông qua các lớp DataTable -> DataRow và DataColumn.

Tương tác dữ liệu với SqlDataAdapter thêm, sửa , xóa dữ liệu từ c#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace knsdl
{
    public partial class frmDaatadapter : Form
    {
        public frmDaatadapter()
        {
            InitializeComponent();
        }
        SqlDataAdapter adapter = null;
        DataSet ds = null;
        SqlConnection conec = null;

string stronic = @”Server =DESKTOP-CR8PM8T\SQLEXPRESS; Database=CSDLSANPHAM ; User ID=sa; pwd =123″;
        private void frmDaatadapter_Load(object sender, EventArgs e)
        {

        }

        private void btnHien_Click(object sender, EventArgs e)
        {
            if (conec==null)
            {
                conec = new SqlConnection(stronic);
            }
            adapter = new SqlDataAdapter(“select * from SanPham”,conec);
            SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
            ds = new DataSet();
            adapter.Fill(ds, “SanPham”);
            gvSanPham.DataSource = ds.Tables[“SanPham”];
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            DataRow row = ds.Tables[“SanPham”].NewRow();
            row[“Ma”] = txtMa.Text;
            row[“TenSanPham”] = txtTen.Text;
            row[“Gia”] = txtGia.Text;
            row[“MaDm”] = txtMaDM.Text;
            ds.Tables[“SanPham”].Rows.Add(row);
            int kq = adapter.Update(ds.Tables[“SanPham”]);
            if (kq>0)
            {
                btnHien.PerformClick();
                MessageBox.Show(“Bạn Đã Lưu Thành công”);

            }
            else
            {
                MessageBox.Show(“Bạn lưu thất bại”);
            }

        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            if (vt==-1)
            {
                MessageBox.Show(“Bạn vui lòng chọn sản phẩm sửa”);
            }
            DataRow row = ds.Tables[“SanPham”].Rows[vt];
            row.BeginEdit();
            row[“Ma”] = txtMa.Text;
            row[“TenSanPham”] = txtTen.Text;
            row[“Gia”] = txtGia.Text;
            row[“MaDm”] = txtMaDM.Text;           
            row.EndEdit();
            int kq = adapter.Update(ds.Tables[“SanPham”]);
            if (kq>0)
            {
                btnHien.PerformClick();
                MessageBox.Show(“Bạn đã sửa thành công”);

            }
            else
            {
                MessageBox.Show(” Sửa thất bại”);
            }
        }
        int vt = -1;
        private void gvSanPham_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            vt = e.RowIndex;
            if (vt==-1)
            {
                MessageBox.Show(“Bạn chưa chọn sản phẩm “);
                return;
            }
            DataRow row = ds.Tables[“SanPham”].Rows[vt];
            txtMa.Text = row[“Ma”] + “”;
            txtTen.Text = row[“TenSanPham”] + “”;
            txtGia.Text = row[“Gia”] + “”;
            txtMaDM.Text = row[“MaDM”] + “”;
        }

        private void btXoa_Click(object sender, EventArgs e)
        {
            if (vt==-1)
            {
                MessageBox.Show(” Bạn chưa chọn sản phẩm xóa”);
                return;
            }
            DataRow row = ds.Tables[“SanPham”].Rows[vt];
            row.Delete();
            int kq = adapter.Update(ds.Tables[“SanPham”]);
            if (kq>0)
            {
                btnHien.PerformClick();
                MessageBox.Show(“Bạn đã xóa thành công”);
            }
            else
            {

            }
        }
    }
}

video hướng dẫn code chi tiết học lập trình c#