考虑到通过C#与SQL Server数据库的连接,我希望能够向数据库发送命令,以在需要一定秒数的情况下停止执行大型查询。
据我了解,CommandTimeout
是C#句柄,用于度量(以秒为单位)等待命令执行的时间。但是,它不会告诉数据库在其末端结束执行。
using (SqlConnection connection = new SqlConnection(database.ConnectionString))
{
connection.Open();
SqlCommand sqlCommand = new SqlCommand(query, connection);
sqlCommand.CommandTimeout = 30;
SqlDataAdapter da = new SqlDataAdapter(sqlCommand);
//send command to SQL Server to kill Query Session ID if takes over 30s
da.Fill(response);
connection.Close();
da.Dispose();
}
我使用SqlCommand.Cancel进行了研究,但不确定如何实现它,或者不确定它是否是我所寻找的。