【问题标题】:select statement times out选择语句超时
【发布时间】:2013-10-07 11:55:10
【问题描述】:

我需要使用包含 400 万行的表格填充下拉菜单。

如何在不让 select 语句超时的情况下做到这一点?

需要 SQL 注入。 ?还是别的什么?

现在我尝试只获得前 100 行。但是我的项目在数据库中有很多用户和很多细节。所以我需要在下拉列表中显示所有值,我当前的代码在这里:

protected void SearchButton_Click(object sender, EventArgs e)
{

       var search = YourSeachTextBox.Text.Trim();

       if(!String.IsNullOrEmpty(search) && search.Length > 3)
       {

             using(SqlConnection sqlConnection = new SqlConnection("Your Connection String"))
             {

                   var query = "SELECT TOP 100 * FROM [YourTable] WHERE UserName LIKE @Search";


                   SqlCommand sqlCommand = new SqlCommand(query,sqlConnection);


                   sqlCommand.Parameters.AddWithValue("@Search", search + "%");


             }
       }
}

【问题讨论】:

  • 嗯?您想用 400 万个项目填充下拉列表吗?祝你好运。即使可以,也没有人愿意从如此庞大的列表中选择一些东西。
  • 是的,你需要 SQL 注入 :)
  • 没有SQL注入就无法完成
  • 对于facebook等社交网络有很多用户,如何管理呢?他们还使用了sql注入?或其他方式?
  • @TimSchmelter :--) 你看到 facebook 搜索好友选项了吗?同样的功能想成为我。

标签: sql select sql-server-2008-r2 settimeout


【解决方案1】:

我假设您打算用 400 万行的部分填充下拉列表? 然后你必须在那些有助于分离它们的列上创建索引!

如果您真的打算一次用大部分内容填充它们,那么事情肯定会超时,因为您的客户端浏览器将无法处理这个!

【讨论】:

  • 索引如何帮助从数据库中获取所有行?
  • @Anton 这就是我写信的原因,我假设他打算只选择其中一些! 400 万个 OPTION-Items 会有什么意义?
猜你喜欢
  • 2011-10-13
  • 2018-04-28
  • 2010-10-03
  • 2013-06-22
  • 2011-06-09
  • 2011-07-12
  • 2015-01-28
  • 2011-07-05
  • 2019-01-04
相关资源
最近更新 更多