C#,Sqlite, Monodevelop, Raspberry Pi - no such table, filename unknown rubrika: Programování: .Net
Na zmíněných platformách se pokouším něco vykutit a zaseknul jsem na spojení s databází Sqllite.
Nejdříve přes konzoli vytvořím jednoduchou testovací databázi, něco tam vrazím a hned to zkusím vytáhnout
sqlite3 test.db CREATE TABLE users (id INT primary key,name varchar(40)); INSERT INTO users (name) VALUES ('skybedy'); SELECT * FROM users;
Výsledek je očekávatelný a správný, vypíše mi to řádek se záznamem.
Pak udělám jednoduchou aplikaci v Monodevolop.
using System; using System.Data; using Mono.Data.Sqlite; namespace SQLiteTestConsole{ class MainClass { public static void Main (string[] args) { TestSqlite ts = new TestSqlite(); ts.SelectData(); Console.ReadKey(); } } public class TestSqlite{ SqliteCommand cmd; SqliteConnection con; SqliteDataReader reader; public TestSqlite (){ con = new SqliteConnection("Data Source=test.db,Version=3"); } public void SelectData (){ con.Open(); cmd = new SqliteCommand("SELECT * FROM users",con); reader = cmd.ExecuteReader (); while (reader.Read()) { Console.WriteLine(reader[1].toString()); } } } } }
Tohle už nefunguje a vyhazuje to zarputile vyjímku:
Mono.Data.Sqlite.SqliteException: SQLite error no such table: users at Mono.Data.Sqlite.SQLite3.Prepare (Mono.Data.Sqlite.SqliteConnection cnn, System.String strSql, Mono.Data.Sqlite.SqliteStatement previous, UInt32 timeoutMS, System.String& strRemain) [0x00000] in <filename unknown>:0 at Mono.Data.Sqlite.SqliteCommand.BuildNextCommand () [0x00000] in <filename unknown>:0
Databáze je uložena v /home/pi, aplikace je uložena tamtéž.
Už jsem samozřejmě googlil ostošest, ale zatím bez úspěchu.
Nějaký nápad? Díky.
Obvyklý problém bývá v cestě k databázovému souboru. Může být, že cesta k Monodevelop projektu != cesta k binárce != pracovní cesta při spuštění. Přičemž databáze se hledá v té poslední.
Doporučuji si vypsat před otevřením connection hodnotu System.Environment.CurrentDirectory.
Pro plný přístup na Devel.cz se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře