Как проверить пользовательский ввод с базой данных? - PullRequest
0 голосов
/ 05 июля 2011

Я проверяю пользовательский ввод с базой данных, проверяю, есть ли у ключа ввода в поле текстового поля аналогичные данные в базе данных, если он есть, будет ли это запрашивать, я делаю это в форме окна C #

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

public Boolean validateName(String txtName)
{
 SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial 
                               Catalog=Staff;Integrated Security=True");
 SqlCommand dbCommand = new SqlCommand();
 dbCommand.CommandText = @"SELECT COUNT(*) FROM StaffDirectory WHERE StaffName='" 
                                           + txtName + "'";
 dbCommand.Connection = conn;
 conn.Open();
 int matchesCount = int.Parse(dbCommand.ExecuteScalar().ToString());

 conn.Close();
 return matchesCount != 0;
}

Ответы [ 3 ]

0 голосов
/ 05 июля 2011

Проверка должна выполняться в логике формы. Не переносите его в базу данных для обработки. L

Следуйте этому примеру модели проверки в вашем коде пользовательского интерфейса:

  protected void textBox1_Validating (object sender,
   System.ComponentModel.CancelEventArgs e)
{
   try
   {
      int x = Int32.Parse(textBox1.Text);
      errorProvider1.SetError(textBox1, "");
   }
   catch (Exception ex)
   {
      errorProvider1.SetError(textBox1, "Not an integer value.");
   }
}
0 голосов
/ 05 июля 2011

Возможно, вам следует использовать подготовленные запросы. Это позволит избежать инъекций sql. Ваш код не является безопасным. Вот пример с сайта MS

0 голосов
/ 05 июля 2011

Простой ответ заключается в том, что вы не должны позволять БД справляться с этим.У него должна быть транзакция, и если она работает, то все в порядке, иначе ничего не происходит.Весь ваш анализ входных значений должен обрабатываться в вашем коде, чтобы вы не заставляли БД работать больше, чем нужно.

Вот ссылка , которая поможет вам начать работу с транзакциями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...