How to connect to sqlite database with password
Asked Answered
M

4

16

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

Manufacture answered 6/3, 2012 at 15:20 Comment(0)
H
18

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

Hamm answered 6/3, 2012 at 15:41 Comment(0)
O
5

you can provide password via connection string;

from ConnectionStrings.com

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

Also, have a look at his link

hope it helps

Outleap answered 6/3, 2012 at 15:25 Comment(0)
R
0

Its very long time ago, but here is my solution that work's with LITEDB using connectionstring and password. But remember you need to set password in your db first. You can use this tool (LITE DB EXPLORER ) to create and manage your databases. https://github.com/JosefNemec/LiteDbExplorer

In App Config Add your connection string like this example:

<?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <connectionStrings>    
        <add name="LiteDB" connectionString="Filename=.\Databases\Data.db"/>    
      </connectionStrings>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
    </configuration>

And in C# code behind:

private static string LoadConnectionString(string id = "LiteDB")
    {
        try { 
            return ConfigurationManager.ConnectionStrings[id].ConnectionString + ";password=your_pass";
        }
        catch (Exception loadConnectionStringError)
        {
            Console.WriteLine("loadConnectionStringError: " + loadConnectionStringError.ToString());
            return null;
        }
    }
Restore answered 21/3, 2019 at 18:32 Comment(0)
W
0

It's not a problem of a connection string. If you have not add any table to database since the encrypted database has been created for the first time. It doesn't permit to connect the database with password although we don't know it's bug or not.

Wray answered 30/1, 2022 at 6:26 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.