人生就是修炼 发表于 2023-8-1 23:31:13

请求解决SQLite数据库设置密码后的连接字符串的问题【编号:42469】

本帖最后由 Bella.Yuan 于 2023-8-3 17:10 编辑

SQLite数据库在没有设置密码的情况下,ActiveReports连接字符串如下:DRIVER=SQLITE3 ODBC DRIVER;DATABASE=data\YiFa.db;这种情况能正常访问。

可给SQLite数据库设置密码后,连接字符串写成 DRIVER=SQLITE3 ODBC DRIVER;DATABASE=data\YiFa.db; Password=123456;却连接不上数据库

在C# Winform环境下,定义数据库连接字符串,能够正常访问数据库
public static string connectionString = @"Data Source=data\YiFa.db;Version=3; Password=123456;"

说明:SQLite使用的版本是 System.Data.SQLite.dll 1.0.112.1,这个版本的数据库免费版可以给数据库设置密码,以后的版本就不支持了。
设置密码的方式如下:

using System.Data.SQLite;

// 创建SQLite数据库连接
SQLiteConnection connection = new SQLiteConnection("Data Source=YiFa.db");
// 打开连接
connection.Open();
// 设置密码
connection.ChangePassword("123456");
// 关闭连接
connection.Close();

请高手指点,如何给带密码的SQLite数据库,定义数据库连接字符串,需要注意哪些细节,谢谢!

我按版主提供的写法重新写了但没能解决!




Eden.Sun 发表于 2023-8-2 18:17:01

本帖最后由 Felix.Li 于 2023-8-2 18:23 编辑

人生就是修炼 发表于 2023-8-2 14:03
数据库文件已经上传,并附上了加密和解密的小程序
您可以使用如下链接方式:

DRIVER=SQLITE3 ODBC DRIVER;DATABASE=C:\Yi 有密码12345.db; PWD=123456;

用pwd而不是password

Felix.Li 发表于 2023-8-3 10:24:37

针对这个老版本的,我们这边也做了排查。确实是因为现在都是得商业版的sqlLite才能加密。

我们找到一个ODBC的驱动可以支持连接您这种的:
https://www.devart.com/odbc/sqlite/download.html

然后使用这个驱动程序进行连接。连接加密的如下,需要指定对应的sqllite直连的DLL。
我的测试地址如下


我的连接字符串如下:
DRIVER=Devart ODBC Driver for SQLite;Direct=False;Database=C:\yi.db;Encryption Key=12345;Encryption Algorithm=TripleDES;Client Library=C:\SQLite.Interop.dll;Locking Mode=Exclusive;Synchronous=Off



Bella.Yuan 发表于 2023-8-3 17:09:32

人生就是修炼 发表于 2023-8-3 14:54
按照版主的方法,测试成功!非常感谢版主的大力支持!辛苦了,谢谢!

使用感受:


您好,目前的设计确实是这样的,我们可以提个需求,不过这个需要产品经理评估一下,看产品后续是否可以针对该功能更新一下。【编号:42469】

Eden.Sun 发表于 2023-8-2 11:28:22

您好,麻烦您给一下你您的数据库,我们这边测试一下呢。

您上传的时候,权限选成超级版主,其他人就不能下载了:

人生就是修炼 发表于 2023-8-2 14:03:05

Eden.Sun 发表于 2023-8-2 11:28
您好,麻烦您给一下你您的数据库,我们这边测试一下呢。

您上传的时候,权限选成超级版主,其他人就不能 ...

数据库文件已经上传,并附上了加密和解密的小程序

人生就是修炼 发表于 2023-8-2 21:15:38

本帖最后由 人生就是修炼 于 2023-8-2 21:18 编辑

Eden.Sun 发表于 2023-8-2 18:17
您可以使用如下链接方式:

DRIVER=SQLITE3 ODBC DRIVER;DATABASE=C:\Yi 有密码12345.db; PWD=123456;

感谢您的回复,但我测试一下,没有通过,我使用的是ActiveReports 15,我把截图发上来

人生就是修炼 发表于 2023-8-3 14:54:14

本帖最后由 人生就是修炼 于 2023-8-3 16:15 编辑

Felix.Li 发表于 2023-8-3 10:24
针对这个老版本的,我们这边也做了排查。确实是因为现在都是得商业版的sqlLite才能加密。

我们找到一个O ...
按照版主的方法,测试成功!非常感谢版主的大力支持!辛苦了,谢谢!:mj72:

使用感受:

个人感觉配置起来有些麻烦(控件面板-管理工具-ODBC32-系统DSN-添加Devart ODBC Driver for SQLite-细节配置-上传的图片)。
最关键的一点,这个ODBC Driver for SQLite 并不是免费的,试用期是30天吧,并不是很理想。
如果能找到一个免费的版本就OK了。
再次感谢版主!

希望ActiveReports 能提供像 WinForm环境下能连接加密数据库的环境,毕竞
在C# Winform环境下,定义SQLite数据库连接字符串,能够正常访问数据库
public static string connectionString = @"Data Source=data\YiFa.db;Version=3; Password=123456;" 这比配置ODBC环境方便比多了(说的不一定正确,请批评指正!)




人生就是修炼 发表于 2023-8-3 18:49:36

Bella.Yuan 发表于 2023-8-3 17:09
您好,目前的设计确实是这样的,我们可以提个需求,不过这个需要产品经理评估一下,看产品后续是否可以针 ...

感谢您提供的技术支持!:handshake

Bella.Yuan 发表于 2023-8-4 08:44:37

人生就是修炼 发表于 2023-8-3 18:49
感谢您提供的技术支持!

不客气,后续如果该需求有更新,我们会追贴回复您~
页: [1] 2
查看完整版本: 请求解决SQLite数据库设置密码后的连接字符串的问题【编号:42469】