Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/34: Рейтинг темы: голосов - 34, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 160

System.InvalidOperationException: "Недопустимая попытка чтения при отсутствии данных."

01.09.2021, 16:01. Показов 7632. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имею вот такой код добычи данных из запроса:
C#
1
2
3
4
5
6
SqlCommand command1 = new SqlCommand("SELECT name1, name2, mame3 FROM Test WHERE id = '" + i + "'", Con1); 
                Con1.Open();
                SqlDataReader reader = command1.ExecuteReader();
                macro[i] = reader.GetString(0);
                nazv[i] = reader.GetString(1);
                nomer[i] = reader.GetString(2);
при выполнении кода возникает ошибка в строке
C#
1
macro[i] = reader.GetString(0);
, ошибка в заголовке, в чем дело не пойму, запрос рабочий, данные в reader должны быть.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.09.2021, 16:01
Ответы с готовыми решениями:

System.InvalidOperationException: "Недопустимая попытка чтения при отсутствии данных." Как исправить?
/*Вызвано исключение в 44 строчке. Вроде всё правильно написано и все типы данных правильно указано*/ using System; using...

Недопустимая попытка чтения при отсутствии данных
Не могу понять почему выбивает эту ошибку:"недопустимая попытка чтения при отсутствии данных" int ID_contact = -1; ...

Исключение System.InvalidOperationException: "Недопустимая операция в нескольких потоках: попытка доступа к элементу упр
При запуске возникает исключение System.InvalidOperationException: "Недопустимая операция в нескольких потоках: попытка доступа к элементу...

31
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 160
01.09.2021, 16:52  [ТС]
Студворк — интернет-сервис помощи студентам
кстати и нагрузка не такая большая будет, там 3-4 обращения в цикле будет, не страшно, я думаю...

Добавлено через 55 секунд
Спасибо, понимаю что борзею, но вот пояснение бы еще ко всему этому....
0
 Аватар для Andrey-MSK
3383 / 2269 / 388
Регистрация: 14.08.2018
Сообщений: 7,687
Записей в блоге: 4
01.09.2021, 16:54
aksident, Руководство по ADO.NET
0
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 160
01.09.2021, 16:56  [ТС]
Ну и как видно из моего кода мне нужен именно строковый массив для моей задачи, т.к. в дальнейшем мне нужны будут значения именно как macro[1], nazv[1], nomer[1], далее macro[2], nazv[2], nomer[2] и т.д.

Добавлено через 47 секунд
Спасибо, почитаю
0
 Аватар для Andrey-MSK
3383 / 2269 / 388
Регистрация: 14.08.2018
Сообщений: 7,687
Записей в блоге: 4
01.09.2021, 17:02
Цитата Сообщение от aksident Посмотреть сообщение
Спасибо, почитаю
Там кратко, а вот тут полная документация от разработчиков - ADO.NET
1
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
01.09.2021, 17:32
aksident, читайте теорию, а не придумывайте собственный синтаксис работы с SqlDataReader
https://docs.microsoft.com/en-... at-ext-5.0
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
01.09.2021, 18:02
Лучший ответ Сообщение было отмечено aksident как решение

Решение

Цитата Сообщение от aksident Посмотреть сообщение
Ну и как видно из моего кода мне нужен именно строковый массив для моей задачи, т.к. в дальнейшем мне нужны будут значения именно как macro[1], nazv[1], nomer[1], далее macro[2], nazv[2], nomer[2] и т.д.
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 class MyData
{  
     int id { get; set; }
     string macro { get; set; }
     string nazv { get; set; }
     string nomer { get; set; }
}
 
List<MyData> listdata = new List<MyData>();
using (SqlConnection con = new SQLConnection(<Строка подключения>))
{
    SqlCommand comm = new SqlCommand("SELECT id, name1, name2, mame3 FROM Test", con); 
    con.Open();
    SqlDataReader reader = command1.ExecuteReader();
    while (reader.Read())
    {
         listdata.Add(new MyData {
              id = reader.GetInt(0),             
              macro = reader.GetString(1),             
              nazv = reader.GetString(2),             
              nomer = reader.GetString(3),             
         });
    }
    reader.Close();
}
Теперь по индексатору можно вытянуть их списка listdata любой объект, а из него - значение скалярной переменной.
1
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 160
01.09.2021, 18:06  [ТС]
Спасибо всем огромное за помощь и уделенное время! Очень всем признателен, теперь стал чуть лучше разбираться в данном вопросе и вижу свои ошибки, буду попробовать, MsGuns ваш код то самое что мне и требовалось сделать, спасибо.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
01.09.2021, 18:08
Для примера загрузка содержимого трех колонок в комбобоксы
C#
1
2
3
4
5
6
7
8
9
comboBoxMacro.Items.Clear();
comboBoxNazv.Items.Clear();
comboBoxNomer.Items.Clear();
foreach (MyData d in listdata)
{
    comboBoxMacro.Items.Add(d.macro);
    comboBoxNazv.Items.Add(d.nazv);
    comboBoxNomer.Items.Add(d.nomer);
}
0
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 160
01.09.2021, 18:16  [ТС]
мне просто нужны значения в переменных, из них будет заполняться шаблон word, но пригодится, спасибо
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
01.09.2021, 23:20
aksident, вам и до этого скидывали рабочие примеры, только тогда это почему то было бессмысленным нагромождением кода...интересно получается! Но да ладно
1
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
03.09.2021, 18:57
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
LaborErect = dataReader["TrMont"] == DBNull.Value ? null : (double?)dataReader["TrMont"],
Стесняюсь спросить: а зачем это масло масляное ?
0
HF
 Аватар для HF
1337 / 921 / 202
Регистрация: 09.09.2011
Сообщений: 2,742
Записей в блоге: 2
04.09.2021, 20:43
Цитата Сообщение от MsGuns Посмотреть сообщение
Стесняюсь спросить: а зачем это масло масляное ?
А как вы иначе бы написали? DBNull это не null.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2021, 20:43

Недопустимая попытка вызвать Read при закрытом устройстве чтения
День добрый. Подскажите п. Как проверить есть ли совпадение. М т.е. в условие нужно занести лож или истена в зависимости от того...

System.AccessViolationException: Попытка чтения или записи в защищенную память - попытка 2
В предыдущей теме некто вообразил, что код зацикливается, поэтому приходится выкладывать более широкую модель. Надеюсь, до целого проекта...

System.AccessViolationException: Попытка чтения или записи в защищенную память - попытка 3
Уже простите за некомпилируемый код, просто я переустановил Windows, и Visual Studio удалилась, только сегодня днем установил. Код там...

При запуске выдает ошибку System.InvalidOperationException: "The specified cast from a materialized 'System.Decimal'
ошибка выдается на этом моменте ObservableCollection &lt; Plane &gt; planes = new ObservableCollection&lt;Plane&gt;(result_planes); вот как...

System.AccessViolationException: Попытка чтения или записи в защищенную память
using System; using System.Collections.Generic; using System.Data.Odbc; using System.Data; using System.Linq; using System.Text; ...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru