我在选择查询中使用参数时遇到问题。
sqlCommand cmd = new SqlCommand(con);
cmd.commandText = "SELECT TOP 1 * FROM tbl WHERE SN=@SN"
cmd.Parameters.Add(new SqlParamter("@SN", "N900"));
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt); // TIMES OUT
但是当我在不带参数的情况下运行它时,效果很好,只需1秒钟即可响应。
cmd.commandText = "SELECT TOP 1 * FROM tbl WHERE SN='N900'"
有什么主意吗?
我可以添加该表是一个视图。
我想出了两种选择, 1.重新编译视图 2.在查询“ Option(Recompile)”的末尾添加
答案 0 :(得分:0)
所以我不确定为什么它对您不起作用。这是一个我知道有效的简单示例。
var sqlCommand = new SqlCommand();
sqlCommand.Connection = new SqlConnection("<YOUR_CONNECTION_STRING>");
sqlCommand.CommandText = @"SELECT * FROM (SELECT 'N900' as SN
UNION
SELECT 'N901') AS A
WHERE A.SN = @SN";
sqlCommand.Parameters.Add(new SqlParameter("@SN", "N900"));
var sqlDataAdapter = new SqlDataAdapter(sqlCommand);
var dataTable = new DataTable();
sqlDataAdapter.Fill(dataTable);
答案 1 :(得分:0)
我想出了两种选择, 1.重新编译视图 2.在查询“ Option(Recompile)”的末尾添加