我在尝试加密 SQLite 数据库时遇到问题。到目前为止,我已经尝试了很多方法,但似乎都不起作用。
SQLiteConnection.SetPassword()提供的(不受支持的)方法System.Data.SQLite,但是一段时间以来,该方法已从System.Data.SQLite包中删除。尝试采用较旧的 SQLite 版本很困难,因为 UWP 是 UAP 而不是 .NET Framework。Microsoft.Data.Sqlite.Core并使用此文档来安装SQLitePCLRaw.bundle_e_sqlcipher包并调用SQLitePCL.Batteries_V2.Init()或SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provided_e_sqlcipher())。那么执行查询PRAGMA KEY = 'password'不会加密数据库文件。SQLitePCLRaw.bundle_sqlcipher,但...e_sqlcipher在这种情况下却...V2.Init()不起作用。sqlite-net-sqlcipher,但是执行SQLiteConnection.Query<int>("PRAGMA key = 'password'");也不加密数据库。当尝试使用查询数据库时,key: "password"将导致The file is no database错误,表示数据库缺少密码。如何加密 UWP 的 SQLite 数据库,最好使用,Microsoft.Data.Sqlite但其他选项也可以。
我主要也在寻找一种免费的方式来实现这一目标,因为 900 美元对于我正在从事的项目来说远远超出了预算。
当将Click事件分配给按钮时,我得到一个预制事件处理程序,它指定了object senderand RoutedEventArgs args。
现在,对于此事件处理程序的实现,我不使用senderand args,因此我收到一条消息,指出我应该删除参数。
我知道_C# 中存在丢弃 ( ) 运算符,但是使用它只能丢弃其中一个参数(如果我_再次使用 for args,则会收到一条错误消息,指出我已经有一个名为 的参数_)。
我在互联网上搜索过,但只有丢弃out变量、在 lambda 表达式中使用丢弃等示例,但对此一无所知。
例如我想转换这样的东西:
private void Button_Click(object sender, RoutedEventArgs args)
{
DoSomethingThatDoesNotUseSenderAndArgs();
}
Run Code Online (Sandbox Code Playgroud)
对此:
private void Button_CLick(object _, RoutedEventArgs _)
{
DoSomethingThatDoesNotUseSenderAndArgs();
}
Run Code Online (Sandbox Code Playgroud)
我应该忽略这条消息吗?或者抑制它,因为似乎没有办法在不使用实现中的参数的情况下解决它?或者实际上是否有一种方法可以丢弃这两个参数,从而删除这个烦人的消息?