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

Đề tài: truy vấn ngẫu nhiên và giữ lại thứ tự cho lần sau ?

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

    Mặc định truy vấn ngẫu nhiên và giữ lại thứ tự cho lần sau ?

    Hi.
    Mình đang có vấn đề này, cũng chả biết đặt tiêu đề thế nào cho đúng
    Ví dụ mỗi lần truy cập thì mình đưa ra 5 tin ngẫu nhiên trong database, và mình sử dụng ORDER BY NEWID() để làm điều đó. Tuy nhiên mình muốn nếu trong cùng 1 phiên làm việc thì 5 tin này ko thay đổi. Tức là lần đầu truy vân đưa ra 5 tin là A,B,C,D,E thì khi thực hiện truy vấn lại (sau khi đã thực hiện các thao tác khác) cũng chỉ đưa ra 5 tin này.

    Cụ thể như sau: User này click vào nút Button và lấy dc 5 tin ngẫu nhiên, sau đó họ qua làm các thao tác khác và 1 lúc sau click vào Button thì vẫn chỉ ra 5 tin đã ra lúc đầu. Còn nếu đóng chương trình và mở lại thì sẽ ra 5 tin khác theo đúng ORDER BY NEWID().

    Các pac nào có cao kiến xin chỉ giúp nhé. Thanks

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

    tạo thêm 1 cái bảng tạm để lưu 5 tin ngẫu nhiên đó, khi user quay lại click thì lấy tin từ trong đó đưa ra
    khi đóng chương trình thì xoá bảng tạm đó
    Programming tutorials and source code examples

    Trong nhà không vợ không con
    Uống bia gặm thịt sao ngon thế này
    Nhậu nhẹt không bị la rầy
    Một tuần ta cứ bảy ngày " nâng ly "....

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

    ví dụ trên mình đơn giản hóa để cho dễ hình dùng, còn thực tế thì nó ngoằn nghèo phức tạp hơn. Mình nối cụ thể là như thế này:
    - Có 1 bảng tblCauHoi(id,noiDung) và 1 bảng tblDapAn(id,id_cauHoi,noiDung), tạm hình dung là 1 bảng chứa câu hỏi và 1 bảng chứa các đáp án của câu hỏi
    Mình muốn lấy ra 5 câu hỏi ngẫu nhiên, và trong mỗi câu hỏi thì từng dapAn của câu đó cũng đc sắp xếp ngẫu nhiên. Để làm điều đó khi chọn 1 câu mình lấy ra các đáp án của nó và cho ORDER BY NEWID()
    Vấn đề là khi xem cậu 1 và đáp án của nó đc sắp xếp ngẫu nhiên theo thứ tự abc nào đó rồi, quay sang câu 2,3,... rồi quay lại câu 1 thì mình muốn thứ tự abc kia vẫn đc giữ nguyên chứ ko random lại nữa.
    Lúc đầu mình định khi lấy ra rồi thì lưu vào mảng, nhưng khó là câu thì 3 đáp án, có câu lại 4,5 đáp án nên ko biết xử lý thế nào.
    Đang bí chỗ này quá các pac ạ

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

    có cách nào ko các pac ơiiiiiiiiiiiiiiiiiiiii

  5. #5
    Ngày gia nhập
    08 2009
    Nơi ở
    C:\Documents and Settings\ME\My Documents\Visual Studio 2010
    Bài viết
    516

    Trích dẫn Nguyên bản được gửi bởi luxubu Xem bài viết
    ví dụ trên mình đơn giản hóa để cho dễ hình dùng, còn thực tế thì nó ngoằn nghèo phức tạp hơn. Mình nối cụ thể là như thế này:
    - Có 1 bảng tblCauHoi(id,noiDung) và 1 bảng tblDapAn(id,id_cauHoi,noiDung), tạm hình dung là 1 bảng chứa câu hỏi và 1 bảng chứa các đáp án của câu hỏi
    Mình muốn lấy ra 5 câu hỏi ngẫu nhiên, và trong mỗi câu hỏi thì từng dapAn của câu đó cũng đc sắp xếp ngẫu nhiên. Để làm điều đó khi chọn 1 câu mình lấy ra các đáp án của nó và cho ORDER BY NEWID()
    Vấn đề là khi xem cậu 1 và đáp án của nó đc sắp xếp ngẫu nhiên theo thứ tự abc nào đó rồi, quay sang câu 2,3,... rồi quay lại câu 1 thì mình muốn thứ tự abc kia vẫn đc giữ nguyên chứ ko random lại nữa.
    Lúc đầu mình định khi lấy ra rồi thì lưu vào mảng, nhưng khó là câu thì 3 đáp án, có câu lại 4,5 đáp án nên ko biết xử lý thế nào.
    Đang bí chỗ này quá các pac ạ
    Theo cách này thì thay mảng bằng mảng động hoặc dang sách.

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

    Mặc định truy vấn ngẫu nhiên và giữ lại thứ tự cho lần sau ?

    Trích dẫn Nguyên bản được gửi bởi iamonlining Xem bài viết
    Theo cách này thì thay mảng bằng mảng động hoặc dang sách.
    bạn nói cụ thể hơn đc ko ?

  7. #7
    Ngày gia nhập
    01 2011
    Bài viết
    22

    Tạo thêm 1 field count trong database, dạng int, có thể null

    Lần đầu tiên mở form lên, ấn button, random ra 5 record, thì trong database sẽ thêm vào field đó số 1 ở cột count.
    Ấn button search lần nữa, nếu có 5 record nào trong database có cùng số trong record count của database thì hiển thị nó lại.
    Khi Close form, thì xóa 5 record khác số này trong database (database chi lưu 5 dòng record của phiên làm việc cuối cùng)


    Mình ko làm trên visual, code mẫu ý tưởng thôi nha



    Private void Search()
    {
    //Cách theo code:

    If (GetFiveRow() == true)
    {
    Datagridview.datasource = ......;
    or do nothing (vì không cần thay đổi thì thôi);
    }
    else
    {
    Datagridview.datasource = hàm random ra cai gi thi ra;
    //Insert 5 record này biến int = 1 vào field count, để lần sau load lên né
    5 cái record này ra.
    }

    //Mẹo
    Tạo 1 biến public Count = 0;
    Khi click button lần đầu tiên, count = 0;
    dòng cuối cùng cho: count = count +1;
    If (count = 0) Load form theo hàm random
    (Count = 1) Không làm gì cả
    }


    Private void Close_Application()
    {
    DeleteFiveRow(); //Chuyển các số thành số chung,
    Khi để lan sau khi load lên sẽ né các số chung này không load cùng 5 record
    Để dễ hơn thì cứ + 1 sau mỗi lần mình thoát, tránh tình trạng phiền phức
    Có thể xóa các số record của lần đăng nhập trước bằng cách
    DelRow.[Tên field] tại vị trí [Tên Database].count = intRow lần đăng nhập này - 1

    Application.Exit();
    }


    Good luck to you !
    Best Regard,
    Trần Xuân Việt - IT Department - Software Developer
    Yahoo: okaomaolaola@yahoo.com
    Phone: 093.4040.847

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

  1. Lập trình C Hàm tạo số ngẫu nhiên | Cách nhập giá trị ngẫu nhiên cho ma trận?
    Gửi bởi chuong01 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 15
    Bài viết cuối: 13-08-2012, 09:43 PM
  2. Bài tập C Tạo ngẫu nhiên mảng 2 chiều vuông 4X4 với các phần tử tạo ngẫu nhiên trong đoạn[0,50]
    Gửi bởi truongtrungviet trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 16-04-2011, 08:06 AM
  3. Cách xây dựng hàm tạo số ngẫu nhiên?
    Gửi bởi buingochuy trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 09-09-2010, 03:51 PM
  4. Câu lệnh truy vấn ngẫu nhiên đối với access
    Gửi bởi huytd trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 15-01-2008, 04:48 PM
  5. Lập trình C++ | Tạo số ngẫu nhiên thực
    Gửi bởi Kevin Hoang trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 03-10-2007, 03:55 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