Cannot open SQLite database-Collection of common programming errors
Using this code:
public void InsertPlatypiRequestedRecord(string PlatypusId, string PlatypusName, DateTime invitationSentLocal)
{
var db = new SQLiteConnection(SQLitePath);
{
db.CreateTable();
db.RunInTransaction(() =>
{
db.Insert(new PlatypiRequested
{
PlatypusId = PlatypusId,
PlatypusName = PlatypusName,
InvitationSentLocal = invitationSentLocal
});
db.Dispose();
});
}
}
…I get, “SQLite.SQLiteException was unhandled by user code HResult=-2146233088 Message=Cannot create commands from unopened database“
…but attempting to add a “db.Open()” doesn’t work, because there is apparently no such method.
-
You are disposing the database prematurely (inside of the transaction). It is better to wrap things up inside of a “using” statement, which will dispose of the db connection:
private void InsertPlatypiRequestedRecord(string platypusId, string platypusName, DateTime invitationSentLocal) { using (var db = new SQLiteConnection(SQLitePath)) { db.CreateTable(); db.RunInTransaction(() => { db.Insert(new PlatypiRequested { PlatypusId = platypusId, PlatypusName = platypusName, InvitationSentLocal = invitationSentLocal }); }); } }
-
string connecString = @"Data Source=D:\SQLite.db;Pooling=true;FailIfMissing=false"; /*D:\sqlite.db??sqlite????????,???????????*/ SQLiteConnection conn = new SQLiteConnection(connectString); //?????? conn.Open(); //???? SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from orders"; //?????????orders? cmd.CommandType = CommandType.Text; using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) Console.WriteLine( reader[0].ToString()); }
you can download System.Data.SQLite.dll here
here is a chinese article for csharp connect sqlite