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:35

    Auf 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.


Anmelden zum Antworten