Search code examples
c#sqlitenavicat

How to connect to sqlite database with password


I have a sqlite database and I want to connect from my C# program using a password for the database. I am using Navicat and I set encrypt database file with password "test" and then by code my connection string is:

_connection = new SQLiteConnection("Data Source=MedExpress.db;Version=3;Password=\"test\";");

or

_connection = new SQLiteConnection("Data Source=MedExpress.db;Version=3;Password=test;");

But this does not work.

The error is: File opened that is not a database file file is encrypted or is not a database

I can connect to the database without a password like this:

_connection = new SQLiteConnection("Data Source=MedExpress.db;Version=3;");

My question is how can I set a password to a sqlite database and connect from C# program using System.Data.SQLite


Solution

  • This is the connection string with password

    Data Source=filename;Version=3;Password=myPassword;
    

    As you stated that you use navicat to set the sqlite encryption. Encryption means that you've encrypted the database it's different from setting a password to a database..

    in setting a password to a database try this code..

    //create file 
    SQLite.SQLiteConnection.CreateFile("c:\\mydatabase file.db3")
    Dim cn As New SQLite.SQLiteConnection
    //set password
    cn.ChangePassword("paxword")
    //remove password
    cn.ChangePassword("")
    

    Remove the encryption first ..