首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
beego
V2EX  ›  Go

请教个 gorm 的问题

  •  
  •   peanuts7660 · 68 天前 · 1363 次点击
    这是一个创建于 68 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用 gorm 读取 sqlite3 的文件,其中有个表 字段 id 是自增的,字段 date 是 DATE 类型,当我读取这个表的数据时,id 总是显示为 0,date 总是显示为 0001-01-01T00:00:00Z
    请问下是怎么回事呢?应该怎么解决。
    谷歌百度都没搜到怎么解决。。。
    第 1 条附言  ·  68 天前
    type Job struct{
        Id int `gorm:"column:Id;primary_key;AUTO_INCREMENT"`
        Name string `gorm:"column:Name"`
        Date time.Time `gorm:"column:date"`
    }
    
    func Test(){
    
        file := "D:\\test.db"
        db,err := gorm.Open("sqlite3",file)
        if err == nil{
            defer db.Close()
            a := Job{}
            db.Where("Name=?","testcase").Find(&a)
            fmt.Println(a)
            
        }else{
            fmt.Println(err.Error())
        }
    
    }
    
    17 回复  |  直到 2019-06-18 09:35:52 +08:00
        1
    boom7   68 天前
    代码呢
        2
    wangsongyan   68 天前 via iPhone
    代码呢,返回 error 了吗?
        3
    Carseason   68 天前 via iPhone
    没读取到所以返回默认值了
        4
    peanuts7660   68 天前
    @wangsongyan 没有 error,部分数据是正常的返回

    @boom7 已经补上了代码

    @Carseason 有点不太明白为什么没有取到数据,因为同一列的其他部分数据有取到
        5
    beidounanxizi   68 天前
    连接参数 parselocal?
        6
    anonymous256   68 天前 via Android
    用数据库软件,打开源 sqlite 文件,看看里面是什么情况。如果数据正常,就是程序的问题。
        7
    yswb   68 天前 via iPhone   ♥ 1
    我也遇到过一次,是数据库连接字符串上需要加上 parseDate=true (类似这样的一个配置,手机不方便查看)解决的,具体的看 readme 上面写的有。
        8
    peanuts7660   68 天前
    @anonymous256 用 SQLiteStudio 打开看数据是正常的

    @beidounanxizi 您说的是 parseTime=true&loc=Local 这两参数吗?好像这两是用在 MySQL 的连接
        9
    beidounanxizi   68 天前
    @peanuts7660 是的 连接参数你看看对不对头 感觉是连接参数的设置问题
    也可以看看 b 站流出来的代码的参数设置阿
        10
    peanuts7660   68 天前
    @beidounanxizi 好的,我去看看呢,谢啦
        11
    rrfeng   68 天前
    把这个打出来:`db.Where("Name=?","testcase").Find(&a).Error`

    估计是 RecordNotFound
        12
    polebug   68 天前
    Q: sqlite 真的连上了吗,其他数据能正常读出来吗
        13
    momo733   68 天前 via iPhone
    你数据库的列名是 Id ?日期列名 date ?检查写对了没……感觉你这大小写不统一
        14
    wangsongyan   68 天前 via iPhone
    用 slice 接收试试
        15
    janxin   68 天前
    你没有验证是不是有 error 啊
        16
    aimerforreimu   68 天前
    `db.LogMode(true)`

    加上这一句打印一下 sql 的日志
        17
    skiy   68 天前
    打印下日志吧。没查到数据肯定就是空值的啊。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2135 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 04:43 · PVG 12:43 · LAX 21:43 · JFK 00:43
    ♥ Do have faith in what you're doing.