Go mit SQL Server-Treiber kann keine Verbindung herstellen, Anmeldung fehlgeschlagen

Ich versuche, Microsoft SQL Server mit einem Go-Programm zu verwenden, um eine Verbindung zu einer Datenbank in SQL Server herzustellen und einige Daten aus der Datenbank zu lesen.

Jedoch wenn ich @ benuterr=db.ping() es verursacht einen Fehler, der besagt:

login fehlgeschlagen für Benutzer 'sakhaloo'

Ich habe die Zip-Datei des Treiberpakets aus diesem Verzeichnis heruntergeladen:github.com/denisenkom/go-mssqldb dann kopiere ich die Dateien in die gezippte Datei und füge sie an der folgenden Adresse ein:C:\Go\src\github.com\denisenkom\go-mssqldb

Ein weiteres Problem besteht darin, dass beim Versuch, meine SQL-Datenbank mit SQL Server 2014 Management Studio zu öffnen, mein Benutzername oder Passwort nicht akzeptiert wird. Tatsächlich tritt dieser Fehler auf, wenn ich meinen Benutzernamen und mein Passwort eingebe:

Eine Verbindung mit dem Server wurde erfolgreich hergestellt, aber während des Anmeldevorgangs ist ein Fehler aufgetreten. (Anbieter: Shared Memory Provider, Fehler: 0 - Am anderen Ende der Pipe befindet sich kein Prozess.) (Microsoft SQL Server, Fehler: 233)

Ich weiß nicht, was mit all diesem Prozess falsch ist.

Dies ist mein Code:

package main
import (
   //_ "code.google.com/p/odbc"
    _ "github.com/denisenkom/go-mssqldb"
    "database/sql"
    "fmt"
    "log"
    //"github.com/astaxie/beedb"
   // "github.com/weigj/go-odbc"
)

var (
    uName, pass string
    p *Person
)

type Person struct {
    userName string
    passWord string
    Email string
}

func main() {
    db, err := sql.Open("mssql", "server=SAKHALOO-PC;user id=sakhaloo;password=hoollehayerazi;database=webApp" )
    if err != nil {
        log.Fatal(err) 
    }
    defer db.Close()
    err = db.Ping()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Please enter your full name & password:")
    fmt.Scanln(&uName, &pass)
    row := db.QueryRow("SELECT username, password, email FROM user WHERE username=? and password=?", uName, pass)
    fmt.Println(row)
    p := new(Person)
    err = row.Scan(&p.userName, &p.passWord, &p.Email)
    fmt.Printf("%s , %s , %s \n", p.userName, p.passWord, p.Email)
    fmt.Printf("Hi %s, your email address is : %s", uName, p.Email)
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage