web-dev-qa-db-ja.com

パスワードでsqliteデータベースに接続する方法

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データベースにパスワードを設定し、System.Data.SQLiteを使用してC#プログラムから接続するにはどうすればよいですか。

14
ddarellis

これはパスワード付きの接続文字列です

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

あなたが述べたように、あなたはsqlite暗号化を設定するためにnavicatを使用します。暗号化とは、データベースを暗号化したことを意味し、データベースにパスワードを設定することとは異なります。

データベースにパスワードを設定するには、このコードを試してください。

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

最初に暗号化を削除します。

16
Prince Jea

接続文字列を介してパスワードを提供できます。

から ConnectionStrings.com

データソース=ファイル名;バージョン= 3;パスワード= myPassword;

また、彼の リンク を見てください

それが役に立てば幸い

5
AnarchistGeek

非常に昔のことですが、これが接続文字列とパスワードを使用してLITEDBで機能する私のソリューションです。ただし、最初にデータベースにパスワードを設定する必要があることを忘れないでください。このツール(LITE DB Explorer)を使用して、データベースを作成および管理できます。 https://github.com/JosefNemec/LiteDbExplorer

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;
        }
    }
0
Douglas Flores