Tôi đã làm điều này trước đây trong C++ bằng cách bao gồm sqlite.h nhưng có cách tương tự dễ dàng trong C# không?Cách tốt nhất để kết nối và sử dụng cơ sở dữ liệu sqlite từ C#
Trả lời
ADO.NET 2.0 Provider for SQLite có hơn 200 lượt tải xuống mỗi ngày, vì vậy tôi nghĩ bạn an toàn khi sử dụng ứng dụng đó.
Có một danh sách các trình bao bọc Sqlite cho .Net tại http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers. Từ những gì tôi đã nghe http://sqlite.phxsoftware.com/ là khá tốt. Điều này cho phép bạn truy cập Sqlite thông qua ADO.Net giống như bất kỳ cơ sở dữ liệu nào khác.
Tôi đã sử dụng điều này với thành công rực rỡ:
http://system.data.sqlite.org/
miễn phí không có giới hạn.
(Lưu ý từ xem xét lại: trang web gốc không còn tồn tại Liên kết ở trên có một liên kết trỏ các trang 404 và có tất cả các thông tin của bản gốc.)
--Bruce
Ngoài ra còn bây giờ điều này tùy chọn: http://code.google.com/p/csharp-sqlite/ - một cổng hoàn chỉnh của SQLite thành C#.
Tôi đồng ý, Bruce. Tôi đang sử dụng http://system.data.sqlite.org/ với thành công lớn. Dưới đây là một ví dụ đơn giản mà tôi đã tạo:
using System;
using System.Text;
using System.Data;
using System.Data.SQLite;
namespace MySqlLite
{
class DataClass
{
private SQLiteConnection sqlite;
public DataClass()
{
//This part killed me in the beginning. I was specifying "DataSource"
//instead of "Data Source"
sqlite = new SQLiteConnection("Data Source=/path/to/file.db");
}
public DataTable selectQuery(string query)
{
SQLiteDataAdapter ad;
DataTable dt = new DataTable();
try
{
SQLiteCommand cmd;
sqlite.Open(); //Initiate connection to the db
cmd = sqlite.CreateCommand();
cmd.CommandText = query; //set the passed query
ad = new SQLiteDataAdapter(cmd);
ad.Fill(dt); //fill the datasource
}
catch(SQLiteException ex)
{
//Add your exception code here.
}
sqlite.Close();
return dt;
}
}
Ngoài ra còn có NuGet package: System.Data.SQLite.
"Nguồn dữ liệu =/path/to/file.db; New = False; " *** nếu bạn không muốn mất tất cả dữ liệu và bảng của bạn mỗi lần ***. – Fil
không hoạt động trong VS 2017.Nó cho thấy lỗi sau: Ngoại lệ không đúng: System.BadImageFormatException: Không thể tải tệp hoặc lắp ráp 'System.Data.SQLite, Version = 1.0.79.0, Culture = neutral, PublicKeyToken = db937bc2d44ff139'. Một nỗ lực đã được thực hiện để tải một chương trình với một định dạng không chính xác. tại ConsoleApp1_del2.Program.Main (String [] args) –
Mono đi kèm với trình bao bọc, sử dụng thẻ của họ!
https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 cung cấp mã để bọc tệp SQLite thực tế (http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip được tìm thấy trên trang tải xuống http://www.sqlite.org/download.html/) theo cách thân thiện .net. Nó hoạt động trên Linux hoặc Windows.
Điều này có vẻ mỏng nhất trong tất cả các thế giới, giảm thiểu sự phụ thuộc của bạn vào thư viện của bên thứ ba. Nếu tôi phải làm dự án này từ đầu, đây là cách tôi sẽ làm.
Một cách khác để sử dụng cơ sở dữ liệu SQLite trong NET Framework là sử dụng Fluent-NHibernate.
[Đây là mô-đun NET kết thúc tốt đẹp xung quanh NHibernate (mô-đun ORM - Ánh xạ quan hệ đối tượng) và cho phép cấu hình NHibernate lập trình (không có tệp XML) với mẫu thông thạo.]
Đây là mô tả ngắn gọn 'Bắt đầu' để làm điều này trong C# từng bước:
https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started
Nó bao gồm một mã nguồn như một dự án Visual Studio.
https://github.com/praeclarum/sqlite-net giờ đây có lẽ là tùy chọn tốt nhất.
- 1. kết nối cơ sở dữ liệu sqlite/câu hỏi khóa
- 2. Cơ sở dữ liệu và kết nối
- 3. Cách lấy chuỗi kết nối từ cơ sở dữ liệu
- 4. Cách tốt nhất để kết nối bảng tính với cơ sở dữ liệu web
- 5. Cách tốt nhất để chuyển đổi cơ sở dữ liệu mysql thành cơ sở dữ liệu sqlite là gì?
- 6. Cách tốt nhất để bảo mật chuỗi kết nối cơ sở dữ liệu là gì?
- 7. Cách tốt nhất để quản lý kết nối cơ sở dữ liệu cho một servlet Java
- 8. Làm cách nào để kết nối với cơ sở dữ liệu SQLite bằng PHP?
- 9. Kết nối cơ sở dữ liệu không đồng nhất
- 10. Android: SQLite sử dụng cơ sở dữ liệu sai
- 11. Nơi tốt nhất để đóng kết nối cơ sở dữ liệu
- 12. Cách kết nối với cơ sở dữ liệu sqlite bằng mật khẩu
- 13. Kết nối với cơ sở dữ liệu oracle với C++
- 14. Làm cách nào để kết nối CakePHP với cơ sở dữ liệu SQLite?
- 15. Làm cách nào tôi có thể sử dụng dapper để kết nối với cơ sở dữ liệu sqlite?
- 16. Tạo cơ sở dữ liệu nhúng Sqlite từ ứng dụng
- 17. Nhận boolean từ cơ sở dữ liệu bằng cách sử dụng Android và SQLite
- 18. Cách tốt nhất để chèn cơ sở dữ liệu hàng loạt từ C# là gì?
- 19. Sử dụng cơ sở dữ liệu SQLite trong Libgdx
- 20. Truy cập cơ sở dữ liệu SQLite từ dòng lệnh
- 21. Làm cách nào để đếm số lượng kết nối mở trong cơ sở dữ liệu sqlite?
- 22. kết nối có một cơ sở dữ liệu từ xa
- 23. Cơ sở dữ liệu tốt nhất để sử dụng với chương trình java là gì?
- 24. Cách tốt nhất để tạo ra ứng dụng cơ sở dữ liệu trong C#
- 25. Đa luồng và kết nối cơ sở dữ liệu
- 26. Kết nối cơ sở dữ liệu Postgres từ MySQL Workbench
- 27. Các kết nối cơ sở dữ liệu và xoắn Xoắn
- 28. Làm thế nào để bạn sử dụng cảm ứng để kết nối với cơ sở dữ liệu SQLite cục bộ?
- 29. cách kết nối F # với cơ sở dữ liệu MySQL?
- 30. Sqlite + C#: Không thể mở tệp cơ sở dữ liệu
Đây là bản sao của câu hỏi này: http://stackoverflow.com/questions/93654/is-there-a-netc-wrapper-for-sqlite và có câu trả lời khác. –
Bản sao có thể có của [Có một trình bao bọc .NET/C# cho SQLite không?] (Https://stackoverflow.com/questions/93654/is-there-a-net-c-wrapper-for-sqlite) – Flimzy