Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2014, 14:43   #1
rasfir
 
Регистрация: 06.04.2014
Сообщений: 3
По умолчанию Автоматически проставляемое поле 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
По умолчанию

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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
бъет ли ферзь, установленный в поле (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