我正在使用 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/