使用参数时,SqlDataAdapter.Fill超时

时间:2013-07-15 15:05:24

标签: c# timeout sqldataadapter sqlparameter

我们目前有一个非常简单的查询,它返回给定帐户的表的最后一行。

SELECT TOP 1 * FROM tbl WHERE AccountID = @AccountID ORDER BY tblID DESC;

使用此参数使用此查询从DataTable填充DataAdapter时,如果该帐户的表中没有数据,则会超时。如果表中有数据,则运行正常。

SqlCommand cmd = new SqlCommand(con);
cmd.commandText = "SELECT TOP 1 * FROM tbl WHERE AccountID = @AccountID ORDER BY tblID DESC"

cmd.Parameters.Add(new SqlParamter("@AccountID", 123));
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);  // TIMES OUT

如果我们更改查询以使其不使用参数,则它会毫无问题地运行。

"SELECT TOP 1 * FROM tbl WHERE AccountID = 123 ORDER BY tblID DESC"

该表非常大(数百万行),但没有参数的查询几乎立即运行。

任何建议都将不胜感激

0 个答案:

没有答案