Asp.net добавить в базу - PullRequest
       5

Asp.net добавить в базу

0 голосов
/ 10 января 2012

Можно ли добавить из одного текстового поля в разные таблицы в базе данных.

У меня есть веб-форма addclub, и я хотел бы добавить имя клуба в несколько различных таблиц.

Ниже приведен мой текущий код.

 cmd = new SqlCommand("insert into youthclublist(youthclubname, description, address1, address2, county, postcode, email, phone) values ('" + youthclubname.Text + "', '" + description.Text + "','" + address1.Text + "','" + address2.Text + "', '" + county.Text + "', '" + postcode.Text + "', '" + email.Text + "', '" + phone.Text + "')", connection);

Ответы [ 2 ]

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

Возможно, да, но рассмотрим мою точку зрения ниже:

  1. Подумайте о нормальной форме, должна быть возможность спроектировать базу данных так, чтобы вам нужно было изменять ее только в одном месте. Если вам нужно изменить имя в нескольких местах, оно, вероятно, не соответствует обычной форме, и база данных может быть изменена.
  2. То, как вы делаете обновление, не рекомендуется, изучите атаки SQLInjection, так как приведенный выше код уязвим для этого. Использование параметров в SQLCommand вместо создания большой строки - лучший способ сделать это с точки зрения безопасности и производительности.

Надеюсь, я не был слишком негативен

Andy

1 голос
/ 10 января 2012

Вы можете сделать это, если вы используете транзакцию (и вы должны использовать параметры, чтобы обойти некоторые проблемы с атаками SQL-инъекций) примерно так (это означает, что все вставки выполняются в одном блоке в базе данных, что безопаснее, чем делатьих один за другим):

using (var cmd = new SqlCommand("BEGIN TRANSACTION;"
            + "INSERT INTO youthclublist(youthclubname) VALUES (@youthclubname);"
// Add all your INSERT statements here for the other tables in a similar way to above (I simplified it to show just one column, but you get the idea)
            + "COMMIT;", conn))
{
    // Add your parameters - one for each of your text boxes
    cmd.Parameters.Add("@youthclubname", SqlDbType.NVarChar).Value = youthclubname.Text;

    // execute the transaction
    cmd.ExecuteNonQuery();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...