gpt4 book ai didi

MySql 命令超时

转载 作者:行者123 更新时间:2023-11-29 13:34:05 25 4
gpt4 key购买 nike

我试图通过以下代码模拟 MySql CommandTimeout 异常。我的 CommandTimeout 为 3 秒,而我的查询大约需要 30 秒才能执行。为什么这段代码不起作用?我有什么问题吗?

我的连接字符串中没有命令超时。

connectionString="server=localhost; logging=true;user id=*****;pwd=****database=shopdb;port=3306;persist security info=true;allow user variables=false;allow zero datetime=true"

请帮忙。

using (MySqlCommand cmd = new MySqlCommand("select * from order_line", new MySqlConnection("myConnectionString"))) {    cmd.CommandTimeout = 3; // default 30 seconds    try {        DateTime start = DateTime.Now;        cmd.Connection.Open();        using (MySqlDataReader reader = cmd.ExecuteReader()){            while (reader.Read()){            }            DBFactory.CloseReader(reader);        }        cmd.Connection.Close();        DateTime end = DateTime.Now;        TimeSpan ts = end - start;        Response.Write(ts.Seconds + "." + ts.Milliseconds);    } catch (Exception ex) {        Response.Write(ex.Message);    } finally {        DBFactory.CloseConnection(cmd);    }}

最佳答案

您能否告诉我您的 order_line 表中有多少条记录,以便我们找出附加的内容?通常,当命令针对上下文连接(连接字符串中使用“context connection=true”打开的 SqlConnection)执行命令时,CommandTimeout 无效。CommandTimeout 是累积超时(对于在调用期间读取的所有网络数据包)。方法)用于命令执行或结果处理期间的所有网络读取。返回第一行后仍然会发生超时,并且不包括用户处理时间,仅包括网络读取时间。

例如,超时时间为 10 秒,如果 Read 需要两个网络数据包,则有 10 秒的时间来读取这两个网络数据包。如果您再次调用 Read,它将再有 10 秒的时间来读取所需的任何数据。 (从msdn复制)。你需要更多解释吗,兄弟?

关于MySql 命令超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18999440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com