2015-10-16 62 views
0

我想从我的postgresql数据库使用golang.print我有多个列打印多行我试图构建代码去生成错误“rows.Columns未定义(类型* sql.Row没有字段或方法列)”

package main 

import (
    "database/sql" 
    "fmt" 
    "github.com/gin-gonic/gin" 
    _ "github.com/lib/pq" 
    "log" 
    "runtime" 
) 

func main() { 

    runtime.GOMAXPROCS(runtime.NumCPU()) 

    db, err := sql.Open("postgres", "dbname=sample_data user=postgres password=postgres sslmode=disable") 
    defer db.Close() 
    if err != nil { 
     fmt.Println("error connecting to DB") 
    } 
    r := gin.Default() 
    r.GET("/cin_display", func(c *gin.Context) { 
     rows := db.QueryRow("SELECT cin FROM companies limit 1;") 

     columns, _ := rows.Columns() 
     count := len(columns) 
     values := make([]interface{}, count) 
     valuePtrs := make([]interface{}, count) 

     for rows.Next() { 

      for i, _ := range columns { 
       valuePtrs[i] = &values[i] 
      } 

      rows.Scan(valuePtrs...) 

      for i, col := range columns { 

       var v interface{} 

       val := values[i] 

       b, ok := val.([]byte) 

       if ok { 
        v = string(b) 
       } else { 
        v = val 
       } 

       fmt.Println(col, v) 
      } 
     } 

    }) 
} 

func Connect(connectionString string) *sql.DB { 
    db, err := sql.Open("postgres", connectionString) 
    if err != nil { 
     log.Fatal(err) 
    } 
    return db 
} 

我得到的错误rows.Columns未定义(类型* sql.Row没有字段或方法列)和rows.Next未定义(类型* sql.Row没有字段或方法下一步)。任何人都有一个例子代码,我可以看看?

回答

相关问题