当我执行此查询时,虽然我将ConnectionTimeOut
设置为1秒,但SqlDataAdapter.Fill
需要的时间超过65秒。并且超时不起作用。
var cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * FROM [tblLargeData]";
con.Open();
cmd.Connection = con;
var ds = new DataSet();
var da = new SqlDataAdapter(cmd);
da.SelectCommand.CommandTimeout = 1;
da.Fill(ds);
tblLargeData
是一个包含SQL Server数据库中的大数据的表。
但是当我像这样更改查询时,CommandTimeOut
正常工作并发生超时。
var cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * INTO #temp1 FROM [tblLargeData]; SELECT * FROM #temp1";
con.Open();
cmd.Connection = con;
var ds = new DataSet();
var da = new SqlDataAdapter(cmd);
da.SelectCommand.CommandTimeout = 1;
da.Fill(ds);
在CommandText
首先在临时表中插入结果,然后从中选择结果。
为什么CommandTimeout在首次查询中不起作用?