2013-11-15 17 views
1

Сегодня мой клиент просто вводит символ «&» в текстовое поле. Строка была чем-то вроде «ABC & XYZ». Когда моя программа считывает строку, она интерпретирует символ & как параметр, поэтому выдается сообщение об ошибке «параметры из связанной». Я уже объясняю им, что есть некоторые специальные символы, которые необходимо избегать использовать.Специальный символ в программе

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

+4

А? ... звучит как вы не написали очень хороший код для синтаксического анализа данных в TextBox. Покажите нам свой код ... –

+2

покажите нам код, который потребляет это текстовое поле – Fredou

+1

Ваш код несет ответственность за правильное обращение с любым вводом. Покажите нам код, чтобы мы могли больше прокомментировать. – Szymon

ответ

1

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

В VB, что я следить за главным образом на использовании двойных кавычек ("), которая будет аннулирована строку в VB.

Если у вас есть SQL Server/Mysql/MSACCESS в качестве базы данных Единого Цитата ('), которая завершает строку в SQL, также следует избегать. Также Dash (-) для превращения команды в комментарий. Поскольку мы говорим о комментариях, (/ *) также следует опасаться.

Что касается превентивных мер, то их много.

1.) Разберите строку перед ее передачей.

2.) использовать хранимые процедуры в базах данных

3.) Манипулирование события нажатия клавиш (на самом деле не то, что я рекомендовал бы, но это решение)

Edit: также, будьте осторожны входа, должно быть числовым! Если вы вводите строку, в которой требуется число, база данных может читать ее как объект внутри нее. Это легко предотвратить с помощью функции val() в vb.net

EDIT 2 Вы можете использовать ЗАМЕНИТЬ.

 dim x as string = "This is Original" 
     x = x.replace("Original", "Replaced") 
     'you can also do x = replace(x, "Original", "Replaced") 
     msgbox(x) 

теперь вы должны иметь строку «Это Заменено»

+0

Как разобрать строку? Это что-то вроде textbox1.text.tostring()? –

+0

Есть много способов сделать это, друг. Вы можете использовать функцию Replace в .net. Смотрите мой комментарий, друг. –

+0

Хорошо, пусть говорит, что я хочу, чтобы пользователь не вводил специальные символы, которые ТОЛЬКО зарезервированы базой данных Oracle и .Net. Есть ли их список? Поэтому я заменю их все пространство. –

Смежные вопросы