Mono.Data.SqliteClient
-
Mahlzeit, ich versuche mit dem Mono - ADO Sqlite Provider auf eine Datenbank zuzugreifen.
Testcode:
public static void Main( string[] args ) { string path = "/home/wyfrn/docs/data/test.sqlite"; string constr = "Data Source=file:" + path + ",version=3"; SqliteConnection con = new SqliteConnection(); try { con.ConnectionString = constr; con.Open(); SqliteCommand cmd = ( SqliteCommand )con.CreateCommand( ); SqliteParameter param = ( SqliteParameter )cmd.CreateParameter( ); param.ParameterName = "@param"; param.Value = DateTime.Now; //cmd.Parameters.Add( param ); cmd.CommandText = "CREATE TABLE 'data' ( 'id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 'date' TEXT NOT NULL );"; //cmd.CommandText = "INSERT INTO 'data' ('date') VALUES ('@param')"; cmd.ExecuteNonQuery( ); } catch( Exception e ) { Console.WriteLine( "FEHLER: " + e.Message ); } finally { con.Close( ); } }
Beim instanziieren des SqliteConnection - Objects erhalte ich folgenden Fehler:
Unhandled Exception: System.InvalidOperationException: Invalid connection string: no URI
at Mono.Data.SqliteClient.SqliteConnection.SetConnectionString (System.String connstring) [0x00000]
at Mono.Data.SqliteClient.SqliteConnection.set_ConnectionString (System.String value) [0x00000]
at Mono.Data.SqliteClient.SqliteConnection..ctor (System.String connstring) [0x00000]
at (wrapper remoting-invoke-with-check) Mono.Data.SqliteClient.SqliteConnection:.ctor (string)
at TestApp.MainClass.Main (System.String[] args) [0x00017] in /home/wyfrn/workspace/c#/TestApp/Main.cs:35Auf http://www.mono-project.com/SQLite steht, dass das Format des ConnectionStrings vom Profile abhängt (also vermutlich die .Net/Mono Version?!). Ich hab alle Möglichkeiten von 2.0 - 3.5 durchprobiert aber erhalte immer den selben Fehler. Verwende ich das ConnectionString Format für das 1.1 Profile, kann ich mich zwar verbinden aber keine Daten lesen.
Hat jemand vieleicht irgendwelche Tips?
-
Trenn mal die version von Data Source in deinen Connection string mit einem Semikolon ab, sonst denkt er doch dass version Teil des Pfades ist. Wahrscheinlich Schreibfehler in deiner Doku.