Theo tôi giải pháp tốt nhất là tạo ra lớp trung gian giữa db và ứng dụng (một số loại hình lớp dữ liệu), trong đó một số phương pháp để quản lý truy vấn. Mô tả dưới đây dựa trên SQLite như một phép loại suy để SQLServer (ADO kết nối)
lớp đề cập có thể bằng cách singleton, và bạn có thể gọi nó là ví dụ bất cứ nơi nào bạn muốn trong ứng dụng của bạn - ví SQLite nó có thể trông như thế:
private static SQLite instance;
public static SQLite getInstance()
{
if(instance == null)
{
instance = new SQLite();
thread = Thread.CurrentThread.ManagedThreadId;
}
return instance;
}
Bạn có thể lấy ví dụ như sau:
SQLite db = SQLite.getInstance();
lớp này có thể chứa nhiều phương pháp để thao tác dữ liệu ví dụ:
public SQLiteCommand prepareQuery(string sql)
{
cmd = new SQLiteCommand(sql, conn);
return cmd;
}
public SQLiteDataReader executeReader()
{
return cmd.ExecuteReader();
}
public int executeInt()
{
object obj = cmd.ExecuteScalar();
return (int)obj;
}
nhưng cũng quản lý giao dịch và phương pháp chẩn đoán. Vì vậy, bây giờ - bạn có thể sử dụng lớp này giống như bạn trong ứng dụng nếu bạn có các nguồn db khác hoặc thậm chí các kiểu db, bạn có thể tạo lớp dữ liệu tiếp theo (ví dụ cho Oracle hoặc MSSQL, MySQL ...). cùng một giao diện, ví dụ:
IDataBase
và bây giờ, bạn có một số loại mặt tiền mà bạn có thể thay thế khi cần thiết một cách năng động. Từ thời điểm này bằng cách sử dụng db trong ứng dụng được tập trung ở một nơi, và nó là niềm vui tinh khiết cho lập trình viên để sử dụng nó - đó là gợi ý của tôi.
Bạn có bao nhiêu trải nghiệm lập trình? Đã sử dụng cơ sở dữ liệu trước đây chưa? – Onkelborg
Tôi có một số kiến thức cơ bản về C# và biết SQL, tôi đã không phải truy cập vào một db trong một chương trình C# trước đây. – user483267
Đó là một câu hỏi mở rộng. Bất kỳ câu trả lời hay nào cũng sẽ phụ thuộc vào những gì bạn muốn làm, khung thời gian bạn phải làm việc với, và những gì bạn đã quen thuộc/thoải mái. – jac