咒语格式:末尾添加import 注意
# 编写一个golang调用sqlserver的框架代码

1.新增数据

2.删除数据

3.更新数据

4.查询单条数据

5.查询多条数据

import | |

例子:

提问:

编写一个golang调用sqlserver的框架代码

1.新增数据

2.删除数据

3.更新数据

4.查询单条数据

5.查询多条数据

import

回答

go
package main

import (
    "database/sql"
    "fmt"
)

func main() {
    db, err := sql.Open("sqlserver", "server=.;database=mydb;uid=sa;pwd=mypassword")
    if err != nil {
        panic(err)
    }

    // 新增数据
    insertStmt := "INSERT INTO table_name (col1, col2) VALUES (?, ?)"
    stmt, err := db.Prepare(insertStmt)
    if err != nil {
        panic(err)
    }
    result, err := stmt.Exec("some value", 100)
    if err != nil {
        panic(err)
    }

    // 删除数据
    deleteStmt := "DELETE FROM table_name WHERE id=?"
    stmt, err = db.Prepare(deleteStmt)
    if err != nil {
        panic(err)
    }
    result, err = stmt.Exec(10)
    if err != nil {
        panic(err)
    }

    // 更新数据
    updateStmt := "UPDATE table_name SET col1=? WHERE id=?"
    stmt, err = db.Prepare(updateStmt)
    if err != nil {
        panic(err)
    }
    result, err = stmt.Exec("new value", 5)
    if err != nil {
        panic(err)
    }

    // 查询单条数据
    queryStmt := "SELECT * FROM table_name WHERE id=?"
    row := db.QueryRow(queryStmt, 5)
    var col1, col2 string
    err = row.Scan(&col1, &col2)
    if err != nil {
        panic(err)
    }
    fmt.Println(col1, col2)

    // 查询多条数据
    rows, err := db.Query(queryStmt)
    if err != nil {
        panic(err)
    }
    for rows.Next() {
        err = rows.Scan(&col1, &col2)
        if err != nil {
            panic(err)
        }
        fmt.Println(col1, col2)
    }
}