0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 160

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

01.09.2021, 16:01. Показов 7657. Ответов 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
3392 / 2278 / 388
Регистрация: 14.08.2018
Сообщений: 7,703
Записей в блоге: 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
3392 / 2278 / 388
Регистрация: 14.08.2018
Сообщений: 7,703
Записей в блоге: 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
1340 / 924 / 202
Регистрация: 09.09.2011
Сообщений: 2,743
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru