Как подключиться к базе данных sqlite с паролем - PullRequest
13 голосов
/ 06 марта 2012

У меня есть база данных sqlite, и я хочу подключиться из моей программы на C #, используя пароль для базы данных. Я использую Navicat, и я установил зашифрованный файл базы данных с паролем "test" а затем по коду моя строка подключения:

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

или

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

Но это не работает.

Ошибка: File opened that is not a database file file is encrypted or is not a database

Я могу подключиться к базе данных без пароля, как это:

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

У меня вопрос: как установить пароль для базы данных sqlite и подключиться из программы на C #, используя System.Data.SQLite

Ответы [ 3 ]

16 голосов
/ 06 марта 2012

Это строка подключения с паролем

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

Как вы заявили, вы используете navicat для установки шифрования sqlite.Шифрование означает, что вы зашифровали базу данных, это отличается от установки пароля для базы данных ..

при установке пароля для базы данных попробуйте этот код ..

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

Удалите шифрованиепервый ..

5 голосов
/ 06 марта 2012

вы можете указать пароль через строку подключения;

из ConnectionStrings.com

Источник данных = имя файла; Версия = 3; Пароль = мой пароль;

Также посмотрите на его ссылку

надеюсь, это поможет

0 голосов
/ 21 марта 2019

Это очень давно, но вот мое решение, которое работает с LITEDB, используя строку подключения и пароль. Но помните, вам нужно сначала установить пароль в вашей базе данных. Вы можете использовать этот инструмент (LITE DB EXPLORER) для создания и управления вашими базами данных. https://github.com/JosefNemec/LiteDbExplorer

In App Config Добавьте строку подключения, как в следующем примере:

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

И в C # код позади:

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