c# - 我如何限制和减慢我的本地 SQL Express 以进行测试?

标签 c# sql sql-server ado

我正在使用 ADO 在 C# 中进行查询,以从 Microsoft SQL Express 数据库中选择一条记录。出于某些测试目的,我需要在 SQL Express 中延迟大约 300 毫秒,以便我可以模拟我需要的情况。 有一个限制,我不能使用任何存储过程。

任何线索将不胜感激。

最佳答案

您可以将 WAITFOR 注入(inject)到您的 SQL 中:

有关更多信息,请参阅此 SO QA Sleep Command in T-SQL?

给定发送到数据库的命令:

SELECT * FROM MyTable

嵌入在 SqlCommand 中:

using (var conn = new SqlConnection("connection string"))
using (var comm = new SqlCommand("", conn))
{
    conn.Open();
    comm.CommandText = "SELECT * FROM MyTable";
    comm.ExecuteNonQuery();
}

改成这样:

    using (var conn = new SqlConnection("connection string"))
    using (var comm = new SqlCommand("", conn))
    {
        conn.Open();
#if DEBUG
        comm.CommandText = "WAITFOR DELAY '00:00:01.000'; SELECT * FROM MyTable";
#else
        comm.CommandText = "SELECT * FROM MyTable";
#endif
        comm.ExecuteNonQuery();
    }

嵌入 1 秒等待。

理想情况下,您不希望以如此丑陋和可疑的方式执行此操作,但出于演示目的,这就足够了。

关于c# - 我如何限制和减慢我的本地 SQL Express 以进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6744170/

相关文章:

C# 告诉有多少敌人还活着的方法

php合并查询左连接和if else语句

sql - MS SQL - 选择记录子集的问题

c# - 错误 1 ​​运算符 '*' 不能应用于类型 'method group' 和 'double' 的操作数

c# - 将 DataTable 保存到数据库表中

c# - 无法使用 Color.FromArgb 设置透明度(但 Color.Transparent 有效)

c# - ExecuteNonQuery() 抛出 "Incorrect syntax near the keyword ' 用户'”

java - Restful Web 服务 - 维护外键

sql - 如何将写入与读取分开以最大程度地减少大量读取查询的影响?

sql - 合并时如何避免从源表插入重复记录?