ASP.NET зависает при вставке чисел с помощью элемента управления texbox - PullRequest
0 голосов
/ 21 апреля 2019

Я использую asp.net 4.5, C # и SQL Express с пятью текстовыми полями. Передаваемые значения - это числа от 0 до 99. При вставке чисел с помощью ExecuteNonQuery система зависает на 30 или более секунд.

Во время отладки VS я проверил, что данные фактически записываются в базу данных, однако ExecuteNonQuery никогда не завершается.

Я пробовал несколько методов, включая преобразование (TryParse и Convert ) с одинаковыми результатами. Я также создал простую тестовую страницу с пятью текстовыми полями, но показывает ту же проблему. Эта проблема терпит неудачу с жестким кодированием так же как хранимой процедурой. Использование элемента управления SQLDatasource работает, но предпочтение отдается кодированию с использованием C #. Поля используются только для чисел и будут рассчитываться при составлении отчетов. Примечание: я предполагаю, что значение необходимо преобразовать из строки в INT.

Структура таблицы:

          [StatID] [int] IDENTITY(1,1) NOT NULL,
      [Made2PT] [int] NULL, [Missed2PT] [int] NULL,

Хранимая процедура:

@Made2Pt Int, @Missed2pt Int        
          AS
          BEGIN
      INSERT INTO tblStatsV2(Made2Pt,Missed2pt)     
      VALUES (@Made2Pt,@Missed2pt)

код C # за образцом, страница частичного тестирования с двумя текстовыми полями :

sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@Made2Pt", txtMade2PT.Text == "" ? 0 : 
                                          Convert.ToInt32(txtMade2PT.Text));
sqlCmd.Parameters.AddWithValue("@Missed2pt",txtMade2PT.Text == "" ? 0 : 
                                          Convert.ToInt32(txtMissed2PT.Text));`

Частичный пример кода от другой страницы:

 cmd.CommandType = CommandType.StoredProcedure;
 if (int.TryParse(txt2ptMade.Text, out made2PT))
 {
          cmd.Parameters.Add("@Made2Pt", SqlDbType.Int).Value = made2PT;
 }

Я ожидаю, что запись вернется менее чем за секунду, поскольку мои другие страницы имеют быстрый ответ.

1 Ответ

0 голосов
/ 15 мая 2019

Что я не делал, так это проверял свою проблему в разных браузерах (Edge, Chrome, Opera ...). Я исправил хранимую процедуру, добавив локальные переменные, но это не устранило проблему.Я обнаружил, что проблема возникает только с Microsoft Edge.После сканирования поддержки Microsoft одним из исправлений было удаление патча KB. Каждый браузер обрабатывает данные по-разному, поэтому вы можете ожидать разных результатов по проблемам производительности.Надеюсь, это поможет ..

...