У меня есть страница aspx с несколькими полями ввода (пара int и строк) и сторонний gridview.Данные проверяются, и хранимая процедура вызывается из кода для сохранения данных в БД.
Gridview имеет возможность отображать окно с ошибкой для пользователя, которое может быть вызвано из кода позади.Поэтому, когда я улавливаю исключение, я выдаю ему сообщение об ошибке (сообщение об ошибке выглядит примерно так: «Данные не могут быть сохранены в базе данных. Ошибка:» & ex.message и вызывает функцию, которая отображает errorbox.
Обычно этопрекрасно работает, но (О, я ненавижу это, но это) при попытке отобразить sqlexception, я получаю сообщение об ошибке javascript / html на странице, и окно ошибки не отображается.
Я пришел к выводу, что ex.message содержитнекоторые символы, которые не могут отображаться в этом окне ошибок javascript / html.
Итак, я попытался использовать System.Web.HttpUtility.HtmlEncode (ex.message), но это не сработало.
Просто из любопытства я также сделал System.Web.HttpUtility.UrlEncode (ex.message), а затем смог отобразить сообщение об ошибке, но, конечно, вместо пробелов было "+"
Пример: Невозможно + вставить + дубликат + ключ + строку + в + объект + 'dbo.TableName' + с + уникальным + индексом + 'IX_Unique_Dan'.% 0d% 0aThe + оператор + был + прекращен.
Есть ливстроенный способ удаления нежелательных персонажей,eofs и подобные?На данный момент я использую мою функцию с именем CleanString, которая проверяет символы в строке.Похоже на это ...
For Each c As Char In value.ToCharArray()
If (Char.IsLetterOrDigit(c)) Then
msg = msg & c
ElseIf (c = ".") Then
msg = msg & "."
.
.
.
Else
msg = msg & " "
End If
Next
Tnx, Benxy