Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Update dữ liệu trực tiếp trên DataGridView?

  1. #1
    Ngày gia nhập
    06 2007
    Bài viết
    206

    Mặc định Update dữ liệu trực tiếp trên DataGridView?

    Có cách nào update dữ liệu trực tiếp trên DataGridView mà ko cần dùng đối tượng CommandBuilder không?

    Mong các bạn góp ý giúp!

  2. #2
    Ngày gia nhập
    06 2007
    Bài viết
    206

    Các bạn giúp giải thích giúp 2 cách đây với:
    Cách 1:

    Code:
    SqlDataAdapter adap;
            DataTable dt;
            public void loadCSDL()
            {
                String sql;
                sql = "select * from NguyenLieuSanPham";
                
                SqlConnection c = new SqlConnection("server=.;database=QLSanPham;uid=usQLSP;pwd=product;");
                adap = new SqlDataAdapter(sql, c);
                SqlCommandBuilder cb = new SqlCommandBuilder(adap);
                if (c.State == ConnectionState.Closed)
                    c.Open();
                dt = new DataTable("Nguyen Lieu");
                adap.Fill(dt);
                dataGridView1.DataSource = dt;
            }
    
    
     private void button1_Click(object sender, EventArgs e)
            {
                adap.Update(dt);
    }
    Cách 2:

    Code:
    SqlDataAdapter adap;
            DataTable dt;
            public void loadCSDL()
            {
                String sql;
                sql = "select * from NguyenLieuSanPham";
                
                SqlConnection c = new SqlConnection("server=.;database=QLSanPham;uid=usQLSP;pwd=product;");
                adap = new SqlDataAdapter(sql, c);
                //SqlCommandBuilder cb = new SqlCommandBuilder(adap);
                if (c.State == ConnectionState.Closed)
                    c.Open();
                dt = new DataTable("Nguyen Lieu");
                adap.Fill(dt);
                dataGridView1.DataSource = dt;
            }
    
     private void button1_Click(object sender, EventArgs e)
            {
                //adap.Update(dt);
                dataGridView1.Update();
                DataTable newTable = new DataTable();
                newTable = dt.GetChanges();
                if (newTable != null)
                {
                    SqlCommandBuilder cmb = new SqlCommandBuilder(adap);
                    adap.TableMappings.Add("nl", dt.TableName);
                    adap.Update(newTable);
                    loadCSDL();
                }
            }
    Cách 1 ngắn hơn cách 2 rất nhiều, chỉ cần thêm đối tượng CommandBuilder trong khối lệnh kết nối CSDL, khi chọn update chỉ cần DataAdapter.Update(DataTable);

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    HCM
    Bài viết
    365

    Có cách nào update dữ liệu trực tiếp trên DataGridView mà ko cần dùng đối tượng CommandBuilder không?
    Bạn đọc kỹ thảo luận này
    http://forums.congdongcviet.com/showthread.php?t=5359
    Cách 1 ngắn hơn cách 2 rất nhiều, chỉ cần thêm đối tượng CommandBuilder trong khối lệnh kết nối CSDL, khi chọn update chỉ cần DataAdapter.Update(DataTable);
    Nhưng cách 2 sẽ uyển chuyển hơn cách 1, ví dụ bạn chỉ muốn cập nhật vào datasource những row bị đánh dấu xóa chẳng hạn chứ không phải cập nhật tất cả...

  4. #4
    Ngày gia nhập
    11 2011
    Bài viết
    12

    Trích dẫn Nguyên bản được gửi bởi nth4 Xem bài viết
    Các bạn giúp giải thích giúp 2 cách đây với:
    Cách 1:

    Code:
    SqlDataAdapter adap;
            DataTable dt;
            public void loadCSDL()
            {
                String sql;
                sql = "select * from NguyenLieuSanPham";
                
                SqlConnection c = new SqlConnection("server=.;database=QLSanPham;uid=usQLSP;pwd=product;");
                adap = new SqlDataAdapter(sql, c);
                SqlCommandBuilder cb = new SqlCommandBuilder(adap);
                if (c.State == ConnectionState.Closed)
                    c.Open();
                dt = new DataTable("Nguyen Lieu");
                adap.Fill(dt);
                dataGridView1.DataSource = dt;
            }
    
    
     private void button1_Click(object sender, EventArgs e)
            {
                adap.Update(dt);
    }
    Cách 2:

    Code:
    SqlDataAdapter adap;
            DataTable dt;
            public void loadCSDL()
            {
                String sql;
                sql = "select * from NguyenLieuSanPham";
                
                SqlConnection c = new SqlConnection("server=.;database=QLSanPham;uid=usQLSP;pwd=product;");
                adap = new SqlDataAdapter(sql, c);
                //SqlCommandBuilder cb = new SqlCommandBuilder(adap);
                if (c.State == ConnectionState.Closed)
                    c.Open();
                dt = new DataTable("Nguyen Lieu");
                adap.Fill(dt);
                dataGridView1.DataSource = dt;
            }
    
     private void button1_Click(object sender, EventArgs e)
            {
                //adap.Update(dt);
                dataGridView1.Update();
                DataTable newTable = new DataTable();
                newTable = dt.GetChanges();
                if (newTable != null)
                {
                    SqlCommandBuilder cmb = new SqlCommandBuilder(adap);
                    adap.TableMappings.Add("nl", dt.TableName);
                    adap.Update(newTable);
                    loadCSDL();
                }
            }
    Cách 1 ngắn hơn cách 2 rất nhiều, chỉ cần thêm đối tượng CommandBuilder trong khối lệnh kết nối CSDL, khi chọn update chỉ cần DataAdapter.Update(DataTable);
    Mình làm như vậy vẫn không được àh

Các đề tài tương tự

  1. cách update ngay trên DataGridView xuống CSDL mà không cần nhấn nút Update
    Gửi bởi heoxinh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 18
    Bài viết cuối: 21-07-2015, 03:13 PM
  2. Update trên từng row trong DataGridView!
    Gửi bởi robocon1183 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 10
    Bài viết cuối: 29-10-2012, 10:53 AM
  3. Trả lời: 9
    Bài viết cuối: 29-08-2011, 04:34 PM
  4. Database Update dữ liệu đã edit trên datagridview vào DB
    Gửi bởi tambeotb4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 22-05-2011, 05:36 PM
  5. Giải pháp update trực tiếp nhiều dòng trên DataGridView ???
    Gửi bởi nth4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 10-06-2007, 03:45 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn