Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление, обновление, удаление... записей 
:(
    Опции темы
Redstuff
Дата 23.8.2007, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Как лучше добавлять, удалять, обновлять, редактировать записи в БД через textBox или DataGridView?
Например щас столкнулся с проблемой реализации этого на textBox'ах (все пытаюсь сделать на одной форме).
user posted image

М.б. стоит все-таки это делать в datagridview?

Приложение будет для 2х пользователей: админы и пользователи (только просмотр записей)

Это сообщение отредактировал(а) Redstuff - 23.8.2007, 23:56


--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
Idsa
Дата 24.8.2007, 06:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(Redstuff @  23.8.2007,  23:42 Найти цитируемый пост)
М.б. стоит все-таки это делать в datagridview?

В том виде, в котором программа существует сейчас, DataGridView ей не нужен.

Цитата(Redstuff @  23.8.2007,  23:42 Найти цитируемый пост)
Как лучше добавлять, удалять, обновлять, редактировать записи в БД через textBox или DataGridView?

Цитата(Redstuff @  23.8.2007,  23:42 Найти цитируемый пост)
Приложение будет для 2х пользователей: админы и пользователи (только просмотр записей)

Пользователю сделать TextBox'ы ReadOnly, а кнопочки Редактировать, Обновить... Enabled=false. А админу все разрешить.
Насколько я понимаю, вероятность коллизии в твоем случае минимальна (т. к. редактировать будут редко - и только админ), то обновлять, удалять и вставлять можно по ID:
Код

UPDATE table Hardware SET ... WHERE ID=@ID

Аналогично INSERT и DELETE.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
SpaceSpace
Дата 24.8.2007, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 10.4.2007
Где: Самара

Репутация: нет
Всего: 10



если невтерпеж использовать DataGridView, то в принципе, можно настроить вывод чего - угодно.
т.е. в строке таблицы ты можеш помещать контрол с текущим расположением тексбохов.

Но это очень муторно - создавать custom row/columns,
поэтому намного лучше оставить как есть


--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
Redstuff
Дата 24.8.2007, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Последовал советам и оставил как есть.
Интерфейс при добавлении новой записи:
user posted image
Поля не все обязательны к заполнению, но если не заполнить поля не строковые то выдается ошибка:
Код

Не удалось преобразовать значение параметра из String в DateTime.

Код

private void btnOk_Click(object sender, EventArgs e)
        {
            SqlCommand cmd = new SqlCommand("INSERT INTO Hardware(Name, Date, Guarant, Price, Quentity, Information, ID_Type) VALUES(@Name, @Date, @Guarant, @Price, @Quentity, @Information, @ID_Type)", con);
            cmd.CommandType = CommandType.Text;

            cmd.Parameters.Add("@Name", SqlDbType.NVarChar, 50);
            cmd.Parameters["@Name"].Direction = ParameterDirection.Input;
            cmd.Parameters["@Name"].Value = txtName.Text;

            cmd.Parameters.Add("@Date", SqlDbType.DateTime);
            cmd.Parameters["@Date"].Direction = ParameterDirection.Input;
            cmd.Parameters["@Date"].Value = txtDate.Text;

            cmd.Parameters.Add("@Guarant", SqlDbType.SmallDateTime);
            cmd.Parameters["@Guarant"].Direction = ParameterDirection.Input;
            cmd.Parameters["@Guarant"].Value = txtGuarant.Text;

            cmd.Parameters.Add("@Price", SqlDbType.Money);
            cmd.Parameters["@Price"].Direction = ParameterDirection.Input;
            cmd.Parameters["@Price"].Value = txtPrice.Text;

            cmd.Parameters.Add("@Quentity", SqlDbType.Int);
            cmd.Parameters["@Quentity"].Direction = ParameterDirection.Input;
            cmd.Parameters["@Quentity"].Value = txtQuantity.Text;

            cmd.Parameters.Add("@Information", SqlDbType.Text);
            cmd.Parameters["@Information"].Direction = ParameterDirection.Input;
            cmd.Parameters["@Information"].Value = txtInformation.Text;

            cmd.Parameters.Add("@ID_Type", SqlDbType.Int);
            cmd.Parameters["@ID_Type"].Direction = ParameterDirection.Input;
            cmd.Parameters["@ID_Type"].Value = combType.SelectedIndex + 1;

            //сохранить в базу
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }

Как этого можно избежать? Не проверкой же на то заполенно поле или нет и в зависимости от этого добавлять запись


--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
Idsa
Дата 24.8.2007, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Какая строчка?


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Redstuff
Дата 24.8.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Всегда на 36 строку


--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
Idsa
Дата 24.8.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(Redstuff @  24.8.2007,  13:57 Найти цитируемый пост)
Поля не все обязательны к заполнению, но если не заполнить поля не строковые то выдается ошибка

Логично, что строковые параметры нормально воспринимают пустую строку. Параметр типа Date естественным образом затрудняется преобразовать пустую строку в дату, поэтому нужно воспользоваться, например, следующей конструкцией:
Код

      if (txtDate.Text == "")
        cmd.Parameters["@Date"].Value = DBNull.Value;
      else
        cmd.Parameters["@Date"].Value = txtDate.Text;


P. S. Если ты не мазохист, используй для ввода дат DateTimePicker.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Redstuff
Дата 24.8.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Команда REDSTUFF
**


Профиль
Группа: Участник
Сообщений: 497
Регистрация: 27.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Ясно, значит как я и написал выше ((
Цитата(Redstuff @ 24.8.2007,  13:57)

Как этого можно избежать? Не проверкой же на то заполенно поле или нет и в зависимости от этого добавлять запись




--------------------
ГОСТы, СНиПы, ТУ...
<реклама удалена администрацией форума>
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0804 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.