为什么在我使用库golang go-mssqldb连接到sql server之后,为什么打印<nil>?

I have problem , after I connection to sql server , they print <nil> , what wrong with my code or problem with my connection to sql server because they just print <nil>?

error can see in here enter image description here

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/denisenkom/go-mssqldb"
    "github.com/gin-gonic/gin"
    "net/http"
)

func main()  {
    db, err :=  sql.Open("sqlserver","sqlserver://sa:@localhost:1433?database=CONFINS&connection+timeout=30")
    if err != nil{
        fmt.Print(err.Error())
    }


    err = db.Ping()

    if err != nil {
        fmt.Print(err.Error())
    }
    defer db.Close()

    type SMSBlast struct {
        SequenceID  string
        MobilePhone string
        Output  string
        WillBeSentDate string
        SentDate string
        Status string
        DtmUpd string
    }

    router := gin.Default()

    //Get a SMSBlast  detail
    router.GET("/SMSBlast2/:SequenceID", func(context *gin.Context) {
        var(
            smsblast SMSBlast
            result gin.H
        )

        SequenceID := context.Param("SequenceID")
        fmt.Println(db.Ping())
        row := db.QueryRow("select SequenceID, MobilePhone, Output, WillBeSentDate, SentDate, Status, DtmUpd from SMSBlast2 = ?;",SequenceID)
        err = row.Scan(&smsblast.SequenceID, &smsblast.MobilePhone, &smsblast.Output, &smsblast.WillBeSentDate, &smsblast.SentDate, &smsblast.Status, &smsblast.DtmUpd)
        if err != nil{
            //if no results send null
            result = gin.H{
                "result": nil,
                "count":  0,
            }
            }else{
                result = gin.H{
                    "result" : smsblast,
                    "count" : 1,
                }
            }

        context.JSON(http.StatusOK, result)
    })
    router.Run(":8080")

}
dongxianghui3709
dongxianghui3709 我在SSMS中测试我的查询,查询正常,但是在代码中实现后不显示json@PanagiotisKanavos
一年多之前 回复
doucheng1884
doucheng1884 在编写代码之前,请使用SSMS或ADS或所需的任何其他数据库客户端工具测试查询。如果无法直接运行查询,则无法使用自己的代码运行查询
一年多之前 回复
dongtangxi1584
dongtangxi1584 如果有任何错误,这是您的代码执行的。您应该修改代码以至少记录错误,而不仅仅是返回空结果。您已经有一个语法错误,它将阻止您的查询运行。错误消息将对此进行解释。
一年多之前 回复
dongqiulei1987
dongqiulei1987 我已经从行:=db.QueryRow(“选择SequenceID,MobilePhone,Output,WillBeSentDate,SentDate,Status,DtmUpdfromSMSBlast2whereSequenceID=?;”,SequenceID)纠正了该代码,但仍然显示nil
一年多之前 回复
dongzhun4898
dongzhun4898 您是否不缺少WHERESequenceID=?在你的SQL字符串?无论如何,您实际上应该只记录从row.Scan返回的错误,这样您就可以知道自己在做什么错。
一年多之前 回复
duangua5308
duangua5308 谁是“他们”,他们在哪里归还?SQL语言(不仅是SQLServer)没有nil。您的代码虽然在出现错误的情况下似乎会返回该值,甚至不检查该错误是什么
一年多之前 回复

1个回答




  fmt.Println(db.Ping())
</ code> </ pre>

</ blockquote>

打印 db.Ping()</ code>返回的错误,通常为 nil </ code>。</ p>
< / DIV>

展开原文

原文

    fmt.Println(db.Ping())

Prints the error returned by db.Ping(), which normally is nil.

douchi7073
douchi7073 正确的谢谢,我忘记删除db.ping()
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐