SqlDataAdapter.Fill比CommandTimeout花费更多时间

时间:2016-07-17 07:23:32

标签: c# sql sql-server ado.net sqldataadapter

当我执行此查询时,虽然我将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在首次查询中不起作用?

0 个答案:

没有答案