小编Оле*_*ров的帖子

SQL DataReader 网络使用限制

我有这样的想法(不知道好坏)。我有实用程序,它通过 reglament 连接到 SQL Server 并将一些数据获取到应用程序。数据很简单(2 个 varchar 文本属性),但数据数量约为 300 万行。因此,我的应用程序非常频繁地使用网络。我可以通过编程方式减少(限制、节流等)SQL 的网络带宽使用吗DataReader?让它运行得更慢,但不要给服务器和客户端带来压力。这个主意好不好?如果没有,我必须做什么?

到目前为止,这是代码:

using (SqlConnection con = new SqlConnection("My connection string here"))
{
    con.Open();
    using (SqlCommand command = new SqlCommand(query, con))
    {                        
        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                yield return new MyDBObject()
                {                               
                    Date = (DateTime)reader["close_date"],                                
                    JsonResult = (string)reader["json_result"]
                };
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# sql-server datareader

5
推荐指数
1
解决办法
662
查看次数

使用 auth 进行 http 代理

我需要使用 PostForm 方法使用带有身份验证的代理。如果我使用类似(简化)的东西:

request, err := http.NewRequest("GET", url.String(), nil)
response, err := client.Do(request)
Run Code Online (Sandbox Code Playgroud)

我可以轻松做到request.Header.Add("Proxy-Authorization", basicAuth),而且效果很好。但是现在,我正在编辑第三方包,并尝试将代理添加到现有代码中:

    proxyStr := "http://proxy.com:8080"
    proxyURL, _ := url.Parse(proxyStr)

    transport := &http.Transport{
        Proxy: http.ProxyURL(proxyURL),
    }
    bot.Client = &http.Client{
        Transport: transport,
    }

    resp, err := bot.Client.PostForm(method, params)

    auth := "username:password"
    basicAuth := "Basic " + base64.StdEncoding.EncodeToString([]byte(auth)) 
    resp.Header.Add("Proxy-Authorization", basicAuth)
Run Code Online (Sandbox Code Playgroud)

它不起作用,在我看来,它在 string 处失败resp.Header.Add("Proxy-Authorization", basicAuth)。在这个例子中,没有身份验证的代理工作正常。有谁知道,在这种情况下我可以使用带有身份验证的代理吗?

authentication proxy http go

3
推荐指数
2
解决办法
5387
查看次数

Golang-浮点到整数转换

我的问题看起来很简单,但是我还没有解决。.用户输入金额xx.xx作为字符串。之后,我将字符串转换为浮点值(例如美元,美分),例如,将其设为655.18(float64)。然后,我需要将此金额转换为美分-655.18 * 100,结果是65517.9999999,所以当我进行强制转换时将此值转换为int,我得到65517,所以损失了1美分。我如何避免这种行为?

码:

package main

import (
    "fmt"
    "strconv"
)

func CheckParamsPur(sa string) (amount float64) {
    amount, _ = strconv.ParseFloat(sa, 64)
    return amount
}

func main() {

    fmt.Print("Enter a number: ")
    var input string
    fmt.Scanf("%s", &input)
    amount := int(CheckParamsPur(input) * (100))

    fmt.Println(amount)

}
Run Code Online (Sandbox Code Playgroud)

variables rounding type-conversion go

2
推荐指数
1
解决办法
3926
查看次数

golang 从控制台擦除符号

当程序等待时,我想在控制台中创建动画。有很多简单的方法可以做到这一点,通常,我们只是在某个循环的迭代中绘制符号。让我们的代码是:

func Spinner(delay time.Duration) {
    for !StopSpinner{
        for _, r := range `-\|/` {
            fmt.Printf("\r%c", r)
            time.Sleep(delay)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是 - 如何在控制台屏幕中不需要动画时删除动画。我尝试了转义序列,如 fmt.Print("\b") 或 fmt.Printf("\r%s", "") 但没有结果。我无法从屏幕上删除最后一个符号,它与下一个文本连接。如何擦除已打印到控制台的字符?

symbols go erase

2
推荐指数
1
解决办法
2512
查看次数