.net - SQLite中uniqueidentifier中的乱码文本

标签 .net sqlite encoding

大家好,

我在将 Sqlite 与 .Net/visual studio 结合使用时遇到问题,非常需要您的帮助。

问题是:

当通过一些 GUI 工具查看表数据时,我在 Sqlite 数据库中的 ID 列中的数据类型为“uniqueidentifier”的文本出现乱码(我尝试了不同的工具)

在 .net 代码中检索数据时显示正常,但让我对此感到紧张。

更多细节在这里:

  1. 当我用 Sqlite Administrator 打开表时,它在 ID 列中显示乱码。

  2. 但是,当我使用可视化设计指定表数据适配器或通用 SqliteDataAdaptor 来检索表时,ID 列显示正常。

下面是我如何生成乱码数据。

  1. 首先,我使用 Sqlite 连接驱动程序 dll 通过服务器资源管理器将表拖放到 visual studio 数据集设计器。

  2. 以编程方式修改数据,然后使用可视化设计的数据适配器对其进行更新。

我的怀疑

我怀疑是SqliteDataAdaptor(或者里面的.net适配器?)在数据库中插入了UNICODE编码的字符串。因此,当通过适配器检索数据时,它会显示正常。但是GUI工具无法处理unicode,所以显示乱码?

最后

我不知道Sqlite 数据库中是否有'uniqueidentifier' 数据类型。但是在我从其他学院收到的数据库文件中,它显示类型为“uniqueidentifier”,而且它似乎在工作。

提前谢谢大家。

干杯

最佳答案

没关系,我想出了解决办法。

似乎 Sqlite 默认将 Guid 存储为二进制数据。 .net 希望它是字符串。

因此使用以下设置将连接字符串设置为 sqlite 数据库将解决问题:

Data source=somefile;BinaryGUID=False;

引用:http://www.connectionstrings.com/sqlite

关于.net - SQLite中uniqueidentifier中的乱码文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3756517/

相关文章:

c# - 从 GUID 的前四个字节获取 Int32 的最佳方法是什么?

c# - 如何将 UTF-8 byte[] 转换为字符串

mysql - MySQL 中 utf8mb4 和 utf8 字符集有什么区别?

Python - Unicode 解码/编码

c# - 将二进制数据转换为 Windows-1252 编码是否可能丢失数据?

c# - Windows 任务计划程序启动程序时如何获取应用程序文件夹

c# - 一个具有多个项目的 asp.net web 应用程序作为一个团队开发,轻松更新!

linux - Sqlite:比较两个数据库并更新旧的 - Linux

java - 如何在android本地数据库中存储intent?

iphone - 拆分 CoreData 以获得更快的查询时间