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

Пожалуйста, потерпите меня. Мне нужно вставить значения из множества текстовых и комбинированных полей в БД. Теперь, если какое-либо из текстовых или комбинированных полей является ПУСТОЙ, я хочу, чтобы это было пропущено, то есть предыдущее значение в БД, если оно есть, должно быть оставлено нетронутым. Что-то вроде обновления профиля. Я буду очень рад, если вы сможете прийти мне на помощь.

Я не хочу писать бесконечно cmd.Parameters.AddWithValues ​​(...); ...

Спасибо в ожидании.

Edit: Мне нужна ситуация, например, если пользователь пытается ввести новые записи, но оставил некоторые поля пустыми, я просто заменю то, что уже находится в БД, на значения, которые он вводит. Но если поле пустое, я хочу оставить то, что уже есть в БД, нетронутым, решив не заменять его пустым значением. Спасибо.

Я использую C # в VS2010, а база данных - MSSQL.

Ответы [ 3 ]

0 голосов
/ 09 сентября 2011

Я думаю, что предпочтительным способом является загрузка существующих значений из БД в текстовые поля, а затем сохранение их обратно в БД при обновлении, чтобы пользователи могли очистить поле, если они хотят.Это упростит вашу логику и будет более соответствовать текущей практике.

0 голосов
/ 09 сентября 2011

Как насчет этого:

          string s;

          foreach (Control cc in this.Controls)
          {
              if (cc is ComboBox || cc is TextBox)
              {
                  if (!string.IsNullOrEmpty(cc.Text))
                  {
                      s = cc.Text;
                      //Do something with the value
                  }
              }
0 голосов
/ 09 сентября 2011

Я бы передал ноль для пустых значений в БД и использовал бы sql как:

Ниже приведен пример Transact SQL для Microsoft SQL Server, использующий функцию isnull, которая проверяет, является ли первый параметр нулевым, и задает ли для себя столбец (т.е. не изменяет его).

update the_table
set 
 col_x = isnull(@some_value_x, col_x),
 col_7 = isnull(@some_value_y, col_y)
 .
 .
 .

в коде C # вы можете использовать:

string some_value_x = textbox_x.Text.Trim();
if(string.IsNullOrWhitespace(some_value_x)) 
       some_value_x = null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...