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

Đề tài: Gọi lại hàm cập nhập mà dữ liệu không được update lên gridview?

  1. #1
    Ngày gia nhập
    05 2010
    Bài viết
    505

    Mặc định Gọi lại hàm cập nhập mà dữ liệu không được update lên gridview?

    Mình có 1 form như sau:

    hàm để load data cho gridView
    Visual C# Code:
    1. DataSet dsHD = null;
    2.         private void loadHD()
    3.         {
    4.             dbHelper = new DBAccess();
    5.             String sql = "select a.id,b.ten,a.soLuong,a.ngayGio,(a.soLuong*b.gia) as soTien from tblHoaDon a,tblThucDon b where a.maBan='"+maBan+"' and a.idThucDon=b.id";
    6.             try
    7.             {
    8.                 dsHD = dbHelper.FillDataSet(sql, "tblHoaDon");
    9.                 dataGridView1.DataSource = dsHD.Tables["tblHoaDon"];
    10.                 dataGridView1.Columns[0].Visible = false;
    11.                 dataGridView1.Columns[1].HeaderText = "Thực Đơn";
    12.                 dataGridView1.Columns[2].HeaderText = "Số Lượng";
    13.                 dataGridView1.Columns[3].HeaderText = "Ngày Giờ";
    14.                 dataGridView1.Columns[4].HeaderText = "Tiền";
    15.                 dataGridView1.Columns[1].Width = 250;
    16.                 dataGridView1.Columns[2].Width = 60;
    17.                 dataGridView1.Columns[3].Width = 120;
    18.                 dataGridView1.Columns[4].Width = 60;
    19.             }
    20.             catch (Exception)
    21.             {
    22.                 MessageBox.Show("Có lỗi khi load dữ liệu từ bảng Hóa Đơn", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Error);
    23.                 //throw;
    24.             }
    25.             dbHelper.CloseConnection();
    26.         }

    trên form có 2 nút Thêm và Xóa khi click sẽ thực hiện delete hoặc insert vào database. Mọi thứ ok nhưng vấn đề là khi Thêm hoặc Xóa mình đều gọi lại hàm loadHD() ở trên, mục đích để update lại cái gridview. Ví dụ khi click Xóa
    Visual C# Code:
    1. // xóa dữ liệu
    2. ....
    3. //gọi lại hàm
    4. this.loadHD();

    nhưng không hiểu sao dữ liệu trên gridview ko đc reload lại (mặc dù trong data đã thay đổi). Ví dụ mình xóa cái row đầu tiên thì trong data đã mất những trên gridview lại vẫn còn, xóa tiếp cái thứ 2 thì trên gridview mới mất cái đầu. Tương tự với trường hợp Thêm cũng vậy.

    Trước giờ mình toàn làm vậy và chưa gặp trường hợp này bao giờ, thêm hay xóa cái là gridview thay đổi ngay, không hiểu sao project này lại bị. Mình dùng dữ liệu MS Access.

    Mong các pac có kinh nghiệm chỉ giáo.
    Thanks

  2. #2
    Ngày gia nhập
    05 2010
    Bài viết
    505

    Up, pac nao nào có cao kiến gi ko, thực sự trc giờ vẫn làm vậy ok, ko hiểu sao project này lại như thế, form nào cũng bị luôn :(

  3. #3
    Ngày gia nhập
    05 2010
    Bài viết
    505

    up, có pac nào thấy có vấn đề gì ko ?
    Tại sao gọi lại hàm loadHD() mà nó ko update đc dữ liệu mới ngay nhỉ. Cứ phải lần thứ 2 thì mới thấy đc sự thay đổi của lần thứ nhất :(

  4. #4
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Dùng Debug soi giá trị xem thế nào bạn? mà sao fill dữ liệu hết lại để cái "maban" làm gì vậy?
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  5. #5
    Ngày gia nhập
    05 2010
    Bài viết
    505

    Trích dẫn Nguyên bản được gửi bởi mrfour.it Xem bài viết
    Dùng Debug soi giá trị xem thế nào bạn? mà sao fill dữ liệu hết lại để cái "maban" làm gì vậy?
    Mình thử thêm 1 cái messagebox vào hàm loadHD thì nó vẫn show ra, chứng tỏ hàm ầy vẫn chạy khi đc gọi, những dữ liệu trên gridview lại không thay đổi, mình thử cho DBAccess dbHelper = new DBAccess(); ở toàn cục (bỏ dbHelper = new DBAccess(); và dbHelper.CloseConnection(); trong hàm) thì có cải thiện đc một chút, trong cùng form gọi lại hàm loadHD() thì gridview đc update, còn ở form khác gọi thì vẫn như cũ, tức là gọi lần thứ 2 thì mới thấy thay đổi của lần thứ nhất :(

    Có khi nào do Access ko nhỉ, trc giờ mình toàn làm theo kiểu này (MS SQL) thì ok.

    Còn cái "maban" là để đánh dấu xem bàn này hiện đang có những hoaDon nào ấy mà

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

  1. Không update được dữ liệu từ gridview help me
    Gửi bởi ntpnguyenphuong trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 02-02-2013, 10:19 AM
  2. Không lấy được dữ liệu từ gridview để update vào SQl được :(
    Gửi bởi thonghn trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 12
    Bài viết cuối: 30-06-2011, 01:41 PM
  3. Database Làm thế nào để Update DL trong GridView bằng nút bấm ngoài GridView
    Gửi bởi hocphp_1998 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 10-02-2011, 04:04 PM
  4. Database update giá trị Data Gridview
    Gửi bởi ChuotNhat3k trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 12
    Bài viết cuối: 31-12-2010, 03:02 PM
  5. update dữ liệu trong gridview vào database?
    Gửi bởi nguyencuong_cnc trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 13-04-2009, 12:15 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