views:

78

answers:

4

Hey all...

I am trying to connect to a sqllite db from with a c# application. I have never worked with SQLLite before.

var connectionString = @"data source='C:\TestData\StressData.s3db'";
            connection = new SQLiteConnection(connectionString);
            connection.Open();

When i attempt to open the connection I get the following exception:

System.NotSupportedException: The given path's format is not supported.
   at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath)
   at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath)

What am I doing wrong?

Thanks..

Nick

Update:

I changed 'data source' to 'DataSource' as suggested to me. Now I receive a new error:

After changing this I get a new error: System.ArgumentException: Data Source cannot be empty. Use :memory: to open an in-memory database at System.Data.SQLite.SQLiteConnection.Open()

Any more suggestions?

+3  A: 

Check out the System.Data.SQLite open source ADO.NET provider. Pretty nicely done with good examples. I use it playing around interoperability between my Ruby and C# stuff.

rp
I'm using the ADO provider. I actually got this connection string from the property generated from within Server Explorer.
Nick
+1  A: 

According to this, data source should be DataSource

Brendan Long
Doh! I think you are right. After changing this I get a new error:System.ArgumentException: Data Source cannot be empty. Use :memory: to open an in-memory database at System.Data.SQLite.SQLiteConnection.Open()I must have to provide an argument?
Nick
@Nick, I've never used this, but from the docs it sounds like the argument should be `new SQLiteConnection("DataSource=C:\TestData\StressData.s3db")`. I don't know why it's not working :\
Brendan Long
Actually it looks like it should 'data source'
Nick
+2  A: 

You need to download and use System.Data.SQLite.

Jason Webb
+3  A: 

Got it..

"data source=c:\TestData\StressData.s3db; Version=3;"

Looks like the 'Version' attribute is not optional. Interesting that the .NET provider does not show this in the designer property window.

Nick