The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
peanuts7660

请教个 gorm 的问题

  •  
  •   peanuts7660 · Jun 17, 2019 · 4358 views
    This topic created in 2548 days ago, the information mentioned may be changed or developed.
    我用 gorm 读取 sqlite3 的文件,其中有个表 字段 id 是自增的,字段 date 是 DATE 类型,当我读取这个表的数据时,id 总是显示为 0,date 总是显示为 0001-01-01T00:00:00Z
    请问下是怎么回事呢?应该怎么解决。
    谷歌百度都没搜到怎么解决。。。
    Supplement 1  ·  Jun 17, 2019
    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 replies    2019-06-18 09:35:52 +08:00
    boom7
        1
    boom7  
       Jun 17, 2019
    代码呢
    wa8n
        2
    wa8n  
       Jun 17, 2019 via iPhone
    代码呢,返回 error 了吗?
    Carseason
        3
    Carseason  
       Jun 17, 2019 via iPhone
    没读取到所以返回默认值了
    peanuts7660
        4
    peanuts7660  
    OP
       Jun 17, 2019
    @wangsongyan 没有 error,部分数据是正常的返回

    @boom7 已经补上了代码

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

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

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

    加上这一句打印一下 sql 的日志
    skiy
        17
    skiy  
       Jun 18, 2019
    打印下日志吧。没查到数据肯定就是空值的啊。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   960 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 21:54 · PVG 05:54 · LAX 14:54 · JFK 17:54
    ♥ Do have faith in what you're doing.