Как вставить данные формы в базу данных с проверками в asp.net? - PullRequest
0 голосов
/ 16 января 2012

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

Часть кода в файле .aspx

<form id="form" name="form" action="../Hi.aspx" method="post">
<table cellspacing="4" class="style1">
    <tr>
<td class="style4">
<asp:TextBox ID="TxtFirstName" runat="server" Width="157px"></asp:TextBox>
</td>
td class="style5" id="FName">
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="TxtFirstName" 
 ErrorMessage="Your First Name should be at least 2 characters long" 
 onservervalidate="CustomValidator1_ServerValidate" ForeColor="Red" 
 ValidateEmptyText="True"></asp:CustomValidator>...

и соответствующий код в файле .aspx.cs -

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
        {
            args.IsValid = (args.Value.Length>1);
        }

Это прекрасно работает, когда я запускаю только эту часть приложения.

Теперь я хочу получить значения всех текстовых полей и сохранить их в базе данных.

В файле aspx.cs я написал код как

 protected void ButtonRegister_Click(object sender, EventArgs e)
 {
      string fname = TxtFirstName.Text;
      Controllers.RegistrationController r = new Controllers.RegistrationController();
      int a = r.registerData(fname);
      if (a==1) {
           Response.Redirect("../Hi.aspx");
      }
 }     

, который вызывается при нажатии кнопки отправки.

Метод registerData () в RegistrationController, который устанавливает соединение с базой данных и сохраняет значения формы. Соединение установлено правильно, а значения получены и сохранены. Но проблема в том, что когда я вызываю метод registerData() из метода ButtonRegister_Click, вся написанная мною проверка не работает. Все, что вводится в форму, сохраняется в базе данных без проверки.

Как получить значения и сохранить их и в то же время убедиться, что они проверяются?

Я новичок в .net, поэтому любая помощь приветствуется.

Заранее большое спасибо.

1 Ответ

2 голосов
/ 16 января 2012

Вы можете вызвать Page.Validate в своем методе click и проверить результат этого или указать CausesValidation на своей кнопке, чтобы запустить валидацию

В долгосрочной перспективе вы, возможно, захотите взглянуть на перемещение правил на более низкое значение (т. Е. Бизнес-логику), чтобы при переходе к вспомогательным услугам не возникало необходимости переопределять правила в этих службах. если вы не планируете этого делать, вам может быть достаточно просто покончить с ними на пользовательском интерфейсе

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