Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: Cập nhật dữ liệu từ table A sang table B.

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

    Mặc định Cập nhật dữ liệu từ table A sang table B.

    Xin BQT cho toppic này tồn tại, vì e đang làm đến phần này bên csdl thì gặp bí (hỏi bên kia thì ích thành viên quá, không ai trả lời) với lại e thấy đây cũng liên quan đến csdl khi lập trình bên c# nên e xin post lên đây, a e ai biết chỉ giúp.

    Mình có 2 bảng A và B: Mình muốn sao chép bảng B cho bảng A sao cho nếu khóa chính của B đã có trong A thì A cập nhật lại các dữ liệu khác, ngược lại thì A được chèn mẫu tin mới từ B. Ví du:

    Ở bảng B:
    mahang....tenhang.....soluong....dongia
    1.............mot............10...........1000
    2.............hai............10...........1000
    3.............ba............10...........1000
    4.............bon............10...........1000
    5.............nam............10...........1000

    Ở bảng A:
    mahang....tenhang.....soluong....dongia
    1.............mot............20...........2000
    2.............hai............50...........0

    Sau khi thực hiện lệnh sao chép thì ở bảng A sẽ có kết quả:
    1.............mot............10+20...........1000
    2.............hai............10+50...........1000
    3.............ba............10...........1000
    4.............bon............10...........1000
    5.............nam............10...........1000

    Các bạn giúp mình phần này với!
    * Ghi chủ: Nếu chỉ cập nhật dữ liệu từ B sang A hoặc chèn dữ liệu từ B sang A thì dễ:
    -- Chèn tất cả từ B sang A
    insert into A select * from B
    -- update từ B sang A
    UPDATE A
    SET A.nhaptk = A.nhaptk+B.nhaptk
    FROM A
    JOIN B ON A.mahang =B.mahang

    Mình đã làm như thế này:
    if(A.mahang == B.mahang)
    begin
    UPDATE A
    SET A.nhaptk = A.soluong+tonkho.soluong
    FROM A
    JOIN B ON A.mahang =B.mahang
    end
    else
    begin
    insert into A (mahang,tenhang,soluong,dongia)
    select B.mahang,B.tenhang,B.soluong,B.dongia from B
    end

    Nhưng cũng k được!
    Đã được chỉnh sửa lần cuối bởi sonsonsonson : 03-09-2011 lúc 02:18 PM.
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

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

    Phần này mình cũng đã từng làm !!! mà mình làm bằng c# chứ ko dùng câu lệnh sql như bạn ^^!

    Ko biết bạn chạy thì nó bị lỗi j nhỉ??
    Sống là để cho đi và ...... Nhận lại

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

    Trích dẫn Nguyên bản được gửi bởi linhgl88 Xem bài viết
    Phần này mình cũng đã từng làm !!! mà mình làm bằng c# chứ ko dùng câu lệnh sql như bạn ^^!

    Ko biết bạn chạy thì nó bị lỗi j nhỉ??
    Lúc đầu mình định làm bằng c# nhưng thấy nếu làm bằng c# thì phải up dữ liệu từ 2 bảng lên datagridview sau đó so sánh từng dòng của datagridview A với datagridview B. Ý tưởng là vậy nhưng làm không nổi nên chuyển qua làm bên trong sql luôn,nhưng cũng k được. hix. Các bạn có cách nào không?
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

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

    Trích dẫn Nguyên bản được gửi bởi sonsonsonson Xem bài viết
    Lúc đầu mình định làm bằng c# nhưng thấy nếu làm bằng c# thì phải up dữ liệu từ 2 bảng lên datagridview sau đó so sánh từng dòng của datagridview A với datagridview B. Ý tưởng là vậy nhưng làm không nổi nên chuyển qua làm bên trong sql luôn,nhưng cũng k được. hix. Các bạn có cách nào không?
    Bạn đâu cần up 2 bảng lên 2 datagirdview!! Chỉ cần 1 cái với 1 datagridview là đc!! Rùi lấy từng dòng trong đó so sánh với cái bảng còn lại thui là đc mà !!

    Mình đã code về cái đó!! Ko dài đâu bạn ^^!

    Cố gắng suy nghĩ và làm theo ý mình nghĩ ra là đc mà !! ^^! Chúc thành công nhé ^^!
    Sống là để cho đi và ...... Nhận lại

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

    Mới vô nhìn chữ đỏ tưởng đâu éc min vô đây chém chớ!!!! Đúng là cái này làm cho pố đâu khổ lắm đây!!!

    Nhìn cái của pố giống cái vụ gộp bàn của phần mềm cafe của tui quá!!!

    join + group by ...

    Không nhớ nữa, đang ở quê PC để ở phòng trọ rồi!

    Nếu đúng ý của mình thì thứ 2 mình vô send code qua cho!!

  6. #6
    Ngày gia nhập
    12 2010
    Bài viết
    85

    Mặc định Cập nhật dữ liệu từ table A sang table B.

    Hôm trước mình cũng đã thực hiện theo ý tưởng, nhưng gặp sự cố thế này. Mình post hình cho các bạn xem nhe.
    - Dữ liệu của datagridview khi mình load từ csdl xuống:


    - Và đây là lỗi khi kích hoạt code sao chép


    Mình k hiểu nó là lỗi gì, trong khi mình đã lấy rất nhiều dũ liệu của bảng datagridview để tính toán rồi, nhưng ở bảng này thì làm lại không được.
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

  7. #7
    Ngày gia nhập
    12 2010
    Bài viết
    85

    Trích dẫn Nguyên bản được gửi bởi cchangkhongayngo Xem bài viết
    Mới vô nhìn chữ đỏ tưởng đâu éc min vô đây chém chớ!!!! Đúng là cái này làm cho pố đâu khổ lắm đây!!!

    Nhìn cái của pố giống cái vụ gộp bàn của phần mềm cafe của tui quá!!!

    join + group by ...

    Không nhớ nữa, đang ở quê PC để ở phòng trọ rồi!

    Nếu đúng ý của mình thì thứ 2 mình vô send code qua cho!!

    Hix, thứ 2 là mình phải nộp bài rồi, không biết sau luôn. Huhuhu, đã thử trên sql và cả c# mà vẫn không được.
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

  8. #8
    Ngày gia nhập
    12 2010
    Bài viết
    683

    Trời! vậy xui cho bạn rồi!!!

    Nhìn cái lỗi!!

    Bạn che hết try catch rồi debug xem thử! Nó lỗi khúc trên nên mới nhảy xuống dưới đó

    Oh shirt! trong cái for là dsthongke.Rows.Count - 1 mới đúng chứ!!!

    Vì hàng dưới đâu có lấy đâu!!
    Đã được chỉnh sửa lần cuối bởi cchangkhongayngo : 03-09-2011 lúc 03:42 PM.

  9. #9
    Ngày gia nhập
    12 2010
    Bài viết
    85

    ô,thank you very much nha! nhung datagriew trước mình đặt thuộc tính AllowUserToAddRow là False, nên vòng lặp k cần trừ 1, cái này chưa đặt mà quên trừ 1.
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

  10. #10
    Ngày gia nhập
    12 2010
    Bài viết
    683

    Trích dẫn Nguyên bản được gửi bởi sonsonsonson Xem bài viết
    ô,thank you very much nha! nhung datagriew trước mình đặt thuộc tính AllowUserToAddRow là False, nên vòng lặp k cần trừ 1, cái này chưa đặt mà quên trừ 1.
    Kakaka

    Kekeke

    chưa set AllowUserToAddRow là False mà khi nó duyệt xuống hàng đó là đơ máy là lỗi te le rồi! kaka

    Ôi xời!! Vậy là do cái chít tiệt đó hử!!???

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

  1. MS SQL Lỗi Truyền được tên table vào procedure lỗi Must declare the table variable?
    Gửi bởi khanh120 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 0
    Bài viết cuối: 14-11-2013, 11:55 PM
  2. Tạo quan hệ giữa table giáo viên và table môn học nên làm thế nào?
    Gửi bởi while trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 0
    Bài viết cuối: 20-10-2011, 09:50 PM
  3. Cập nhật dữ liệu từ table A sang table B.
    Gửi bởi sonsonsonson trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 2
    Bài viết cuối: 14-09-2011, 08:37 PM
  4. MS SQL Lỗi Lỗi There are no primary or candidate keys in the referenced table khi tạo Foreign key của table
    Gửi bởi supervirus trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 0
    Bài viết cuối: 15-06-2011, 05:22 PM
  5. Tạo 2 Table từ 1 Table =SQL làm Datbase liên kết với C#
    Gửi bởi ndp1007 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 5
    Bài viết cuối: 08-12-2009, 09:06 AM

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