Cách làm cơ sở dữ liệu tạm cho app windows form

Chào anh chị ! Em đang làm 1 app bằng winform C#, em cần 1 nơi để lưu dữ liệu

  • Dữ liệu là 1 vài bảng nhỏ và một số text (string)
  • Nơi lưu dữ liệu sẽ tự tạo khi mở app và tất cả dữ liệu sẽ bị mất khi tắt app.

Ban đầu em dùng 1 biến là mảng, ArrayList, … để lưu nhưng khó truy xuất, Em có ý tưởng là dùng file txt, XML, JSON nhưng chưa rõ phải thực hiện như thế nhờ anh chị tư vấn giúp có phương pháp nào phù hợp với nhu cầu của em k0 hay có thư viện nào để hỗ trợ k0, Nếu có code mẫu demo thì tốt quá hoặc cho em keyword để tự search cũng được a ! Em cảm ơn

Với cái yêu cầu mất khi tắt app thì chỉ có biến.
Khó truy xuất thì do cấu trúc dữ liệu và phương pháp truy xuất không hợp lý.

7 Likes
  • Nếu muốn ghi ra file thì khi mở app phải tạo file, khi truy xuất bạn lại phải đọc lại từ file (chậm). Trước khi close app phải close, xóa file.
  • Định nghĩa 1 struct chứa tất cả thông tin bạn cần lưu. Sử dụng vector hoặc array để lưu những thứ bạn cần. Việc truy xuất cũng tương đối đơn giản và lại nhanh.
6 Likes

Nếu thấy dùng mảng khó truy xuất thì tự tạo ra một cái class riêng thôi. Các thư viện xử lí JSON, XML nói riêng và tất cả các thư viện trên C# nói chung đều được tạo ra từ class.

Lưu file chỉ phù hợp khi bạn muốn lưu dữ liệu trong dài hạn thôi. Việc đọc, ghi file chậm hơn nhiều so với việc đọc, ghi biến vì tốc độ của ổ cứng chậm hơn hơn RAM nhiều.

6 Likes

Hi there,

Tớ có một vài câu hỏi cần làm rõ trước khi thảo luận về solution. Điều này giúp cho cả bọn tớ lẫn cậu hiểu rõ vấn đề hơn, tránh việc làm khổ nhau khi không hiểu ý nhau :stuck_out_tongue:

Cậu có thể cho tớ biết app của cậu làm chức năng gì không? Và lý do dữ liệu (tớ đoán cậu đang nói tới cơ sở dữ liệu, vì ở các comment khác cậu đề cập tới SQL) nên bị mất khi tắt app không?

Cậu có thể cho tớ biết tại sao mảng/ArrayList lại khó truy xuất được không?

Cậu có thể nói rõ ý tưởng của cậu được không? Cậu sẽ lưu dữ liệu gì ở file txt/XML/JSON? Dữ liệu được lưu sẽ theo cấu trúc nào?

Vậy sao cậu không sử dụng SQL server để lưu?
Ngoài ra, tại sao cậu muốn truy vấn “dữ liệu kiểu bảng” hơn việc lấy dữ liệu từ array/ArrayList, hay text?

Điều này tớ nghĩ không có vấn đề gì với SQL server solution chứ? :stuck_out_tongue:

Mong nhận được câu trả lời của cậu, trước khi chúng ta thảo luận thêm.

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?