ChangePassword()方法不起作用

时间:2012-05-16 15:32:22

标签: c# sqlite

string connectionString = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
SQLiteConnection connString = new SQLiteConnection(connectionString);
using (var command = connString.CreateCommand())
{           
     try
     {
          connString.SetPassword(ConfigurationManager.AppSettings["password1"]);

          connString.Open();
          connString.ChangePassword((String)null);
          connString.ChangePassword(ConfigurationManager.AppSettings["password2"]);
          connString.Close();
          connString.Dispose();
     }
     catch (Exception e)
     {
          Console.Write(e.Message + "\n" + e.StackTrace);
     }
}

我正在尝试通过一个简单的控制台应用程序来测试SQLite。我正在使用app.config文件来读取密码和连接字符串。代码能够在第一次运行时设置密码,但如果我打开连接并尝试通过调用ChangePassWord()方法更改密码,则密码不会更改。我也尝试将密码设置为null,然后将其重置为某个新密码,但这也不起作用。

错误是 文件已打开但不是数据库文件。文件已加密或不是数据库

其他一些人遇到同样的问题:ChangePassword method problem

1 个答案:

答案 0 :(得分:0)

我不是百分百肯定。但由于某种原因,从app.config读取连接字符串可能会对它产生影响。我取出连接字符串并决定硬编码就像这样

SQLiteConnection connString = new SQLiteConnection("data source=\".\\SomeDatabase\"");

之前是这样的:

<connectionStrings>
    <add name="connection"
        connectionString="data source=&quot;.\SomeDatabase&quot;"
        providerName="System.Data.SQLite" />
</connectionStrings>

希望这有助于某人