2013-10-07 6 views
-2

Мне нужно заполнить выпадающие меню таблицей, содержащей 4 миллиона строк.select statement times out

Как я могу это сделать без использования тайм-аута в заявлении выбора?

Требуется SQL-инъекции. ? или что-нибудь еще?

Теперь я попытался получить только 100 строк. Но в моем проекте много пользователей и множество деталей в базе данных. Поэтому мне нужно, чтобы показать все значения в DropDownList, мой текущий код здесь:

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 + "%"); 


      } 
     } 
} 
+3

А? Вы хотите заполнить выпадающий список из 4 миллионов элементов? Удачи. Даже если можно, никто не хочет выбирать что-то из такого огромного списка. –

+2

Да, вам нужны инъекции SQL :) –

+1

Это не может быть сделано без инъекций SQL – Anton

ответ

0

я предполагаю, что вы собираетесь заполнить падение падения с частями Аофа 4 миллиона строк? Затем вам нужно создать индексы на тех столбцах, которые помогут их разделить!

Если вы действительно намереваетесь заполнить их большинством содержимого сразу, вам обязательно придется тайм-аут, так как ваши клиенты-браузеры не справятся с этим!

+1

Как индекс поможет получить все строки из базы данных? – Anton

+0

@ Антон вот почему я написал, я предполагаю, что он намеревался выбрать только некоторые из них! Какой смысл было бы сделать 4 миллиона OPTION-Items? – wegus