Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, Entity Framework
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 21.10.2017
Сообщений: 40
1

Insert: column name or number of supplied values does not match table definition

27.11.2018, 01:43. Показов 4558. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер! На форме имеется 11 полей ввода: 7 string(2 comboBox & 5 textBox), 3 int, 1 date.
Столкнулся с проблемой при попытки добавления элементов в таблицу, выводит ошибку

Insert: column name or number of supplied values does not match table definition


Хотя я уверен, что типы таблици соответствуют моим переменным

Insert: column name or number of supplied values does not match table definition


Вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
private void Button_add_Click(object sender, EventArgs e)
        {
            try
            {
                con.Open();
                String id = Textbox_id.Text.ToString();
                int eid = Int32.Parse(id); 
                String surname = Textbox_surname.Text.ToString();
                String name = Textbox_name.Text.ToString();
                String birthday = Textbox_birth.Text.ToString();
                DateTime date = DateTime.Parse(birthday);
                String gender = comboBox_gender.SelectedIndex.ToString();
                String univer = comboBox_univer.SelectedIndex.ToString();
                String email = Textbox_email.Text.ToString();
                String tent = Textbox_tent.Text.ToString();
                int tent_num = Int32.Parse(tent);
                String teacher = Textbox_teacher.Text.ToString();
                String experiment = Textbox_exp.Text.ToString();
                String points = Textbox_points.Text.ToString();
                int point = Int32.Parse(points);
 
               
                string qry = "insert into Students values('"+eid+"','"+surname+ "','" + name + "','" + date + "','" + gender + "','" + univer + "','" + email + "','" + tent_num + "','" + teacher + "','" + experiment + "','" + point + "')";
                SqlCommand sc = new SqlCommand(qry,con);
                int i = sc.ExecuteNonQuery();
                //if (i>=1)
                //MessageBox.Show(i+"Student Registed"+name);
                //else
                //    MessageBox.Show("Student Not Registed" + name);
 
                con.Close();
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
 
            }
        }
Надеюсь на вашу помощь)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2018, 01:43
Ответы с готовыми решениями:

Cannot insert the value NULL into column 'Id', table '.dbo.Records';column does not allow nulls
Уважаемые, т.к. мой мозг не способен понять, почему вылазит данное исключение, когда я добавляю...

insert into table values (select....
Здравствуйте, скажите, как заставить работать следующий запрос: insert into tg3.dbo.tg3hour values...

Fatal error - Invalid parameter number: number of bound variables does not match number of tokens'
$pass = md5($_POST); $email = $_POST; $login = $_POST; $sex = $_POST;...

Cannot modify a column which maps to a non key-preserved table, insert into
Есть две таблицы: create table slimnicas( s_ID number constraint Ierob_pa PRIMARY KEY, -- <<<...

4
79 / 102 / 44
Регистрация: 12.05.2015
Сообщений: 476
27.11.2018, 06:22 2
IT_shnik, используйте параметризованные запросы и таких проблем не будет.
1
54 / 48 / 31
Регистрация: 14.04.2015
Сообщений: 273
27.11.2018, 09:06 3
IT_shnik, 100% ошибка в запросе. Соглашусь с Tessio, используй параметризованные запросы.


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void driverInsert(string FIO, string Certification)
        {
            using (connect = new OleDbConnection(connectString))
            {
                try
                {
                    command = new OleDbCommand("INSERT INTO [Driver] ([FIO], [Certification])" +
                    "VALUES (@FIO, @Certification)", connect);
 
                    command.Parameters.AddWithValue("@FIO", FIO);
                    command.Parameters.AddWithValue("@Certification", Certification);
                    
                    connect.Open();
                    if (command.ExecuteNonQuery() == 1)
                    {
                        MessageBox.Show("Запись добавлена", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    connect.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

Пример функции добавления данных в БД
1
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
27.11.2018, 10:40 4
Цитата Сообщение от IT_shnik Посмотреть сообщение
Хотя я уверен, что типы таблици соответствуют моим переменным
Цитата Сообщение от IT_shnik Посмотреть сообщение
insert into Students values('"+eid+"',
Одинарные кавычки превращают любой тип данных в текст.
0
Администратор
Эксперт .NET
17772 / 13892 / 5323
Регистрация: 17.03.2014
Сообщений: 28,429
Записей в блоге: 1
27.11.2018, 21:05 5
IT_shnik, при INSERT запросе без указания колонок нужно указывать данные для всех колонок таблицы.У тебя же в таблице 12 колонок, а в запросе 11. Нужно добавить NULL для последней колонки. И, да, как уже посоветовали - следует использовать параметры.
1
27.11.2018, 21:05
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2018, 21:05
Помогаю со студенческими работами здесь

Invalid parameter number: number of bound variables does not match number of tokens
Не могу решить ошибку: Invalid parameter number: number of bound variables does not match number...

Invalid parameter number: number of bound variables does not match number of tokens
запрос $conn = connect_to_db(); $stmt = $conn->prepare("INSERT INTO brandaccounts...

Ошибка после подключения к БД "The column prefix 'Included' does not match with a table name"
есть файл connection.cs using System; using System.Collections.Generic; using System.Text;...

Number of variables doesn't match number of parameters in prepared statement
Собственно, код $query = mysqli_prepare($db, "SELECT * FROM `users_db` WHERE `user_name`='?' ||...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru