请教个 gorm 的问题

2019-06-17 19:34:40 +08:00
 peanuts7660
我用 gorm 读取 sqlite3 的文件,其中有个表 字段 id 是自增的,字段 date 是 DATE 类型,当我读取这个表的数据时,id 总是显示为 0,date 总是显示为 0001-01-01T00:00:00Z
请问下是怎么回事呢?应该怎么解决。
谷歌百度都没搜到怎么解决。。。
3719 次点击
所在节点    Go 编程语言
17 条回复
boom7
2019-06-17 19:48:05 +08:00
代码呢
wangsongyan
2019-06-17 19:48:53 +08:00
代码呢,返回 error 了吗?
Carseason
2019-06-17 20:06:33 +08:00
没读取到所以返回默认值了
peanuts7660
2019-06-17 20:11:03 +08:00
@wangsongyan 没有 error,部分数据是正常的返回

@boom7 已经补上了代码

@Carseason 有点不太明白为什么没有取到数据,因为同一列的其他部分数据有取到
beidounanxizi
2019-06-17 20:17:27 +08:00
连接参数 parselocal?
anonymous256
2019-06-17 20:18:45 +08:00
用数据库软件,打开源 sqlite 文件,看看里面是什么情况。如果数据正常,就是程序的问题。
yswb
2019-06-17 20:21:34 +08:00
我也遇到过一次,是数据库连接字符串上需要加上 parseDate=true (类似这样的一个配置,手机不方便查看)解决的,具体的看 readme 上面写的有。
peanuts7660
2019-06-17 20:24:44 +08:00
@anonymous256 用 SQLiteStudio 打开看数据是正常的

@beidounanxizi 您说的是 parseTime=true&loc=Local 这两参数吗?好像这两是用在 MySQL 的连接
beidounanxizi
2019-06-17 20:43:16 +08:00
@peanuts7660 是的 连接参数你看看对不对头 感觉是连接参数的设置问题
也可以看看 b 站流出来的代码的参数设置阿
peanuts7660
2019-06-17 20:54:44 +08:00
@beidounanxizi 好的,我去看看呢,谢啦
rrfeng
2019-06-17 20:58:48 +08:00
把这个打出来:`db.Where("Name=?","testcase").Find(&a).Error`

估计是 RecordNotFound
polebug
2019-06-17 21:16:05 +08:00
Q: sqlite 真的连上了吗,其他数据能正常读出来吗
momo733
2019-06-17 21:46:40 +08:00
你数据库的列名是 Id ?日期列名 date ?检查写对了没……感觉你这大小写不统一
wangsongyan
2019-06-17 21:51:41 +08:00
用 slice 接收试试
janxin
2019-06-17 21:58:10 +08:00
你没有验证是不是有 error 啊
aimerforreimu
2019-06-17 23:29:35 +08:00
`db.LogMode(true)`

加上这一句打印一下 sql 的日志
skiy
2019-06-18 09:35:52 +08:00
打印下日志吧。没查到数据肯定就是空值的啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/574836

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX