Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/88: Рейтинг темы: голосов - 88, средняя оценка - 4.67
19 / 19 / 13
Регистрация: 19.03.2013
Сообщений: 423

Ошибка "Отсутствует значение для одного или нескольких требуемых параметров"

25.05.2014, 23:20. Показов 16981. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Помогите,пожалуйста, разобрать в ошибке.
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
 private BindingSource source = new BindingSource();
        private DataSet dataSet = new DataSet();
        private string connectionString = "Data Source=\"BD\\bd.mdb\";User " + "ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";";
        private void Form1_Load(object sender, EventArgs e)
        {
            connect();
}
 
  private void connect()
        {
            OleDbConnection connection = new OleDbConnection(connectionString);
            connection.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM anketa", connection);
            dataSet = new DataSet();
            adapter.Fill(dataSet);
            connection.Close();
            source.DataSource = dataSet.Tables[0];
            dataGridView.DataSource = source;
            dataGridView.Columns[0].Visible = false;
        }
 
        private void save()
        {
            // Подключение --------------------------------------------------------------------->>>
 
            OleDbConnection connection = new OleDbConnection(connectionString);
            connection.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM anketa", connection);
            connection.Close();
            dataGridView.Columns[0].Visible = false;
 
            // <<<---------------------------------------------------------------------
 
            // Обновление --------------------------------------------------------------------->>>
 
            adapter.UpdateCommand = new OleDbCommand("UPDATE anketa SET surname = ?, name_ = ? WHERE id = ?");
            adapter.UpdateCommand.Parameters.Add("surname", OleDbType.VarChar, 25, "surname");
            adapter.UpdateCommand.Parameters.Add("name_", OleDbType.VarChar, 12, "name_");
            adapter.UpdateCommand.Parameters.Add("id", OleDbType.Integer, 10, "id");
            adapter.UpdateCommand.Connection = connection;
 
            // <<<---------------------------------------------------------------------
 
            // Добавление --------------------------------------------------------------------->>>
 
            adapter.InsertCommand = new OleDbCommand("INSERT INTO Peoples (surname, name_) VALUES (?, ?)");
            adapter.UpdateCommand.Parameters.Add("surname", OleDbType.VarChar, 25, "surname");
            adapter.UpdateCommand.Parameters.Add("name_", OleDbType.VarChar, 12, "name_");
            adapter.InsertCommand.Connection = connection;
 
            // <<<---------------------------------------------------------------------
 
            // Удаление --------------------------------------------------------------------->>>
 
            adapter.DeleteCommand = new OleDbCommand("DELETE * FROM anketa WHERE id = ?");
            adapter.DeleteCommand.Parameters.Add("id", OleDbType.Integer, 10, "id");
            adapter.DeleteCommand.Connection = connection;
 
            // <<<---------------------------------------------------------------------
           
            adapter.Update(dataSet.Tables[0]);//ТУТ ОШИБКА
         
            
            connect();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (dataGridView.CurrentRow != null)
            {
                dataGridView.Rows.Remove(dataGridView.CurrentRow);
                save();
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            DataRow row = dataSet.Tables[0].NewRow();
            dataSet.Tables[0].Rows.Add(row);
            save();
        }
 
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            save();
        }
Пишет: Отсутствует значение для одного или нескольких требуемых параметров.

Спасибо
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2014, 23:20
Ответы с готовыми решениями:

Ошибка - отсутствует значение для одного или нескольких требуемых параметров
делаю запрос взять значение из таблицы по id счетчик но выходит ошибка string s = Convert.ToString(k1); ...

Отсутствует значение для одного или нескольких требуемых параметров. В чем ошибка?
Есть код Form2 frm = new Form2(); frm.Show(this); frm.button1.Text =...

Отсутствует значение для одного или нескольких требуемых параметров
У меня есть бд в Access. Я с ней работаю в WinForms через форму DataGridView. Я пытаюсь программно сделать замену данных в ячейке,...

14
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
25.05.2014, 23:47
Вместо всех этих строк в секциях обновление, удаление, добавление. Вызови OleDbCommandBuilder - он всё настроит сам.
0
19 / 19 / 13
Регистрация: 19.03.2013
Сообщений: 423
26.05.2014, 00:11  [ТС]
Вам несложно будет показать в виде примера одну из секций,просто не разу не работал с билдером.
Благодарю.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
26.05.2014, 06:58
linkoln_737, У вас id является счетчиком? В таблице anketa у вас всего 3 поля? Если у вас id не является счетчиком, то его нужно вставялть явно. В противном случае получите ошибку: "Отсутствует значение для одного или нескольких требуемых параметров.". Если у вас кроме этих 3-х полей имеются другие, которые не могут содрежать значение NULL и не имеют значения по-умолчанию, то при попытке вставить данные не заполняя такие поля вы поулчите ошибку: "Отсутствует значение для одного или нескольких требуемых параметров.".
0
19 / 19 / 13
Регистрация: 19.03.2013
Сообщений: 423
26.05.2014, 14:15  [ТС]
да id счетчик
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
26.05.2014, 16:33
C#
1
2
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM anketa", connection);
var cb_adapter = new OleDbCommandBuilder(adapter);
Для сохранения данных вызываешь
C#
1
adapter.Update(dataSet.Tables[0]);
0
19 / 19 / 13
Регистрация: 19.03.2013
Сообщений: 423
26.05.2014, 17:47  [ТС]
Все равно эта же ошибка,у меня и было через adapter

C#
1
2
3
4
 OleDbConnection connection = new OleDbConnection(connectionString);
            connection.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM anketa", connection);
            dataSet = new DataSet();
а после объявление переменное

C#
1
var cb_adapter = new OleDbCommandBuilder(adapter);
тоже ошибка та же "Отсутствует значение для одного или нескольких требуемых параметров."
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
26.05.2014, 18:02
linkoln_737,
C#
1
2
3
4
5
6
 private void button2_Click(object sender, EventArgs e)
        {
            DataRow row = dataSet.Tables[0].NewRow();
            dataSet.Tables[0].Rows.Add(row);
            save();
        }
Гхм ... В каком месте, по вашемк, заполняются поля? У вас в базу улетает строка с null'ами вместо значений. Попробуйте задать какие-нибудь значения в полях name_ и surname. Должно помочь.
PS: Вы так и не ответили по поводу общего количества столбцов в таблице.
PPS: Визуально у вас код рабочий и без commandBuilder'а. Если вам удобнее прописывать комманды самому, то прописывайте лучше сами. Пользы больше будет.
0
19 / 19 / 13
Регистрация: 19.03.2013
Сообщений: 423
26.05.2014, 18:22  [ТС]
Мне же нужно чтобы значения user вбивал прям в сам datagridview
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
26.05.2014, 18:52
linkoln_737, а я вас заставляю что ли? Вам же ни что не мешает сделать так:
C#
1
2
row["name_"] = "737";
row["surname"] = "Linkoln";
0
19 / 19 / 13
Регистрация: 19.03.2013
Сообщений: 423
26.05.2014, 21:32  [ТС]
К сожалению ошибка остается.

Добавлено через 4 минуты
C#
1
2
3
4
5
6
7
8
9
10
try
            {
                adapter.Update(dataSet.Tables[0]);
            }
     
            catch (Exception)
            {
                MessageBox.Show("Bug");
            
            }
Так он на время добавляет мне
737 Linkoln в грид,но вылетает исключительная ситуация и все опять не работает

Добавлено через 13 минут
0
19 / 19 / 13
Регистрация: 19.03.2013
Сообщений: 423
26.05.2014, 21:34  [ТС]
вот сам проект
Вложения
Тип файла: rar Organize.rar (209.0 Кб, 19 просмотров)
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
27.05.2014, 08:45
linkoln_737, Слов нет, одни маты. Но так как цензуру здесь никто не отменял, то без коментариев:
Цитата Сообщение от linkoln_737 Посмотреть сообщение
adapter.InsertCommand = new OleDbCommand("INSERT INTO Peoplesanketa (surname, name_) VALUES (?, ?)");
adapter.UpdateInsertCommand.Parameters.Add("surname", OleDbType.VarChar, 25, "surname");
adapter.UpdateInsertCommand.Parameters.Add("name_", OleDbType.VarChar, 12, "name_");
adapter.InsertCommand.Connection = connection;
0
19 / 19 / 13
Регистрация: 19.03.2013
Сообщений: 423
05.06.2014, 23:06  [ТС]
Доброго времени суток.
Ругается,выдает ошибку "Отсутствует значение для одного или нескольких требуемых параметров."
на это adapter.Fill(dataSet);


C#
1
2
3
4
5
6
7
8
9
10
11
 string search = textBox5.Text;
           
            OleDbConnection connection = new OleDbConnection(connectionString);
            connection.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT  * FROM anketa where surname="+search+" ", connection);
 
            dataSet = new DataSet();
            adapter.Fill(dataSet);
            connection.Close();
            source.DataSource = dataSet.Tables[0];
            dataGridView.DataSource = source;
Знаю ,что все дико криво и что через adapter не рекомендуется,но все же помогите исправить,заранее благодарю)
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
06.06.2014, 05:32
Лучший ответ Сообщение было отмечено linkoln_737 как решение

Решение

linkoln_737, Если вы не хотите пользоваться параметрическими запросами, то тогда правильно собирайте строку. Строка в запросе должна обрамалятся ковычкам: "SELECT * FROM anketa where surname='"+search+"'", иначе она будет воспринимматься, как требуемый параметр, а не строка.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2014, 05:32
Помогаю со студенческими работами здесь

Отсутствует значение для одного или нескольких требуемых параметров
Уже три дня сижу над ошибкой. Прочитала все форумы, посмотрела все видео, не знаю как заканчивать проект. Не судите строго,...

Отсутствует значение для одного или нескольких требуемых параметров
&quot;Отсутствует значение для одного или нескольких требуемых параметров.&quot; Пишу проектную работу по информатике, честно в программировании ...

Отсутствует значение для одного или нескольких требуемых параметров
как победить эту ошибку? никак не пойму в чем дело, sql запрос вроде вполне корректный - удаление записи из таблицы: ...

Отсутствует значение для одного или нескольких требуемых параметров
Никак не могу понять, как сделать рабочую UPDATE команду. Почему-то без WHERE она прекрасно работает, но обновляет все строки, когда мне...

Обновление DataGridView: Отсутствует значение для одного или нескольких требуемых параметров
Здравствуйте!!! У меня почему-то выдает ошибку System.Data.OleDb.OleDbException: Отсутствует значение для одного или нескольких требуемых...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru