Lokaler Pfad bei SQLite Datenbank und ASP.NET

Ich probiere mich gerade in ASP.NET und um nicht gleich einen SQL-Server aufsetzen zu müssen, nutze ich SQLite. Die Abfragen sind ähnlich und zum Rumspielen reicht das dicke hin. Zudem habe ich schon ein paar Erfahrungen mit einem anderen Tool gesammelt. Nun hatte ich folgendes Phänomen, ganz am Anfang hatte ich die Datenbank erstellt mit irgendwelchen Dummyeinträgen und ein bischen mit den Ajaxelementen von Visual Studio rumgespielt.
Das hat auch gut geklappt, das auslesen der Daten lief im Hintergrund per SQLiteConnection(). Dann habe ich mir ein reines HTML Formular gebastelt und wollte hier eine Art Login ausprobieren. Auf einmal kam jedes mal die Fehlermeldung, dass die Datenbank „Users“ nicht gefunden wurde (Users war die von mir erstellte).

System.Data.SQLite.SQLiteException: SQLite error
no such table: Users
   bei System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain)
   bei System.Data.SQLite.SQLiteCommand.BuildNextCommand()
   bei System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index)
   bei System.Data.SQLite.SQLiteDataReader.NextResult()
   bei System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
   bei System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
   bei System.Data.SQLite.SQLiteCommand.ExecuteReader()
   bei ASPGuestbook.LoginForm.checkLogin() in ...\LoginForm.aspx.cs:Zeile 57.

Unter Visual Studio konnte ich die SQLite Datenbank ohne Probleme bearbeiten. Die Datei war auch im selben Verzeichnis. Ich hatte mir auch per AppDomain.CurrentDomain.BaseDirectory das Verzeichnis ausgeben lassen. Hat auch alles gepasst.
Mein Befehl zum Öffnen lautete so:

SQLiteConnection sqlCon = new SQLiteConnection("Data Source=datenbank.db3;Password=12345;");
sqlCon.Open();

Natürlich schön im try / catch Block verpackt, es kam aber keine Fehlermeldung. Hat einen Moment gedauert bis ich dahinter kam. Und zwar hat die SQLite Erweiterung die ich nutze die dumme Angewohnheit, wenn Data Source nicht existiert, dass er eine leere Datenbank anlegt. In dieser leeren Datenbank gibt es natürlich nicht die Tabellen und folglich der Fehler. Angelegt hat er diese leeren Datenbanken übrigends unter

C:\Programme\Microsoft Visual Studio 9.0\Common7\IDE

Darauf muss man erstmal kommen..
So funktioniert es dann, ob es die optimale Lösung ist, bezweifel ich.

SQLiteConnection sqlCon = new SQLiteConnection("Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "bin\\datenbank.db3;Password=12345;");
sqlCon.Open();

Das Problem lässt sich sicherlich auch auf andere Sprachen adaptieren. Bei einem richtigen SQL Server fällt das ja sowieso weg, aber nervig wars trotzdem!

Wie man seine EDV ärgert..

via Mail

Vieles kommt mir irgendwie bekannt vor..

Anleitung, wie man es sich am schnellsten mit der EDV-Abteilung verderben kann

1. Wenn jemand von der EDV-Abteilung sagt, dass er gleich vorbeikommt, melde Dich vom System ab und geh einen Kaffee trinken. Es ist für uns kein Problem, uns 700 Passwörter zu merken.
2. Wenn Du uns rufst um Deinen Computer von einem ins andere Büro zu tragen, vergewissere Dich, dass er unter Tonnen von Postkarten, Kinderbildern, Stofftieren, vertrockneten Blumen und Kinderkritzeleien begraben ist. Wir haben kein eigenes Leben und wir lieben es, tief unter dem Müll in irgend etwas glibberiges von Dir zu greifen.
3. Wenn Du von der EDV-Abteilung eine e-Mail mit höchster Dringlichkeit bekommst, lösche sie sofort.
Wahrscheinlich testen wir nur die öffentlichen Mailverteiler.
4. Wenn ein EDV-Mitarbeiter an seinem Schreibtisch sein Mittagessen verzehrt, gehe direkt zu ihm, überschütte ihn mit Vorwürfen und Deinen Computerproblemen und erwarte von ihm, dass er sofort antwortet. Wir existieren einzig um zu dienen und wir denken immer nur an die Reparatur von Computern.
5. Wenn sich ein EDV-Mitarbeiter ein Mineralwasser holt, oder er eine Zigarette raucht, frag ihn irgend etwas über Computer. Der einzige Grund warum wir Mineralwasser trinken, oder rauchen ist, dass wir nach Usern suchen, die weder e-Mail, noch Telefon besitzen.
Wie man seine EDV ärgert.. weiterlesen

Update: Todo

Also es gibt noch ein paar Sachen, die ich hier ändern will.

  • Uhrzeit bei den Beiträgen
  • Bearbeiten Link der Beiträge direkt auf der Startseite
  • Die letzten Kommentare in der Sidebar etwas verschönern
  • Links zu anderen Blogs verschönern
  • einige englische Texte müssten noch übersetzt werden
  • Statische Seiten (etwa Das bin ich) müssten mal aktualisiert werden

Wird aber 🙂