Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 21.04.2014, 14:43   #1
rasfir
Новичок
 
Регистрация: 06.04.2014
Сообщений: 3
Репутация: 10
По умолчанию Автоматически проставляемое поле ID

Программеры есть задача сделать поле id автоматомическим оно итак autoinkrement в базе данных тока мне надо чтоб ему писваивались значения на форм лоад тоб видеть номер его. Я использую запрос
Код:

string  max = "INSERT INTO zayavka (id_zayavki, name_kompleks, tema_obucheniya, period_obuch_S, period_obuch_Do, istoch_finansir, FIO_ispolnitel, data_postupl) VALUES ((SELECT 1 + MAX(id_zayavki) FROM zayavka), @name)";
           //sqlClass.Autoincrement(max, "id_zayavki", label1);

объявляю в классе метод Autoincrement:
Код:

 public string Autoincrement(string SQLcommand, string id_zayavki, Label label)
        {
            string cellValue = null;
            using (connection)
            {
                MySqlCommand showresult = new MySqlCommand("INSERT INTO zayavka (id_zayavki) values (@id_zayavki)", connection);
                showresult.Parameters.AddWithValue(id_zayavki, label);
                this.OpenConnection();
                if (showresult.ExecuteScalar() != null)
                cellValue = showresult.ExecuteScalar().ToString();
                this.CloseConnection();
            }
            return cellValue;
        }

чото нужно исправить? я что то намудрил тут
rasfir вне форума   Ответить с цитированием
Старый 22.04.2014, 12:33   #2
nedel
Пользователь
 
Регистрация: 09.04.2014
Сообщений: 18
Репутация: 10
По умолчанию

1. Если "оно итак autoinkrement в базе данных", то незачем его считать вручную и тем более вставлять его явно в таблицу.

2.
Код:

if (showresult.ExecuteScalar() != null)
                cellValue = showresult.ExecuteScalar().ToString();

Вы тут дважды вызываете showresult.ExecuteScalar() - как результат получете 2 новые строки в Вашей таблице

3. Если Вам нужен ID после вставки то используйте для этого
Код:

SELECT LAST_INSERT_ID();

Код:

string sql="INSERT INTO zayavka (name_kompleks) VALUES (@name); SELECT LAST_INSERT_ID()";

nedel вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
бъет ли ферзь, установленный в поле (k, l) поле (m, n). Antua Помощь студентам 5 24.03.2012 12:03
Уникальное поле и поле счетчик в IBexpert Ist Помощь студентам 4 28.05.2011 09:14
Заполнение поле формы автоматически из другой формы!! Магомед Microsoft Office Access 8 28.07.2009 13:49
После ввода в поле по Enter нужно перейти на другое поле! •ScReam•™ Помощь студентам 2 16.06.2009 08:47


01:43.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru